兰州理工大学微机原理习题集作业答案1-5章(3)

2019-04-02 13:53

微 机 原 理 及 应 用 B 作 业

ADD AL,AL ;2*AL ADD AL、AL ;4*AL MOV BL,AL ;AL→BL SAL BL,1 ;8*AL ADD AL,BL ;12*AL HLT

(1)该程序段的功能是什么? 答:把AL中的内容乘以12

(2)设AL的初值为0AH,执行该程序段后,AL为多少? 答:AL=78H

4.21已知有程序段如下:(与12题重) (1)该程序段的功能是什么? 答:将BCD码转换成二进制

(2)执行该程序段后,AL= 23H

4.22、下列程序段要求在内存40000H开始的顺序30个单元中存放着8位无符号数,将它们的和放在DX中,试填空完成该程序(并加入必要的注释)或自行编制一段程序完成上述功能。

MOV AX,4000H ; MOV DS,AX ; 送段首地址 MOV SI,0000H ; 送偏移量 MOV CX, 30 ; 送循环次数 XOR AX,AX ; 清零 GOON: ADD AL, [SI] ; 两数相加 ADC AH,00H ; 加进位位 INC SI ; 修改地址 DEC CX ; 计数器减1 JNZ GOON ; 不为零循环

MOV DX ,AX ; 结果送DX 4.23在AL中有一个十六进制数的ASCII码,完成下面程序段在每一空白处填上一条适当指令(并加入必要的注释),实现将AL中的ASCII码转换成二进制数。

CMP AL,3AH ; 与3AH 比较 JC DONE ; 小于转移到DONE SUB AL,7 ; 大于减7 DONE:SUB AL,30H ; AL减30H HLT

4.24已知附加段中有一块长50个字的数据区,首址为DEST。欲编程将它们全部初始化为0FFFFH值,试在下面程序段的空白处填上适当的指令或操作数(并加入必要的注释),以实现上述功能。

LEA MOV

DI,DEST ; 取DEST偏移量

CX, 100 ; 送计数值

CLD ; 清方向标志位,DF=0

11

微 机 原 理 及 应 用 B 作 业

MOV

AL,0FFH ; 将AL←0FFH REP STOSB ; 将送100个字节FFH到首址为DEST区域 4.25已知附加段中有一块长50个字的数据区,首址为DEST。欲编程将它们全部初始化为0FFFFH值,试在下面程序段的空白处填上适当的指令或操作数(并加入必要的注释),以实现上述功能。(与24题重)

DI,DEST ; MOV CX, ; CLD ; MOV AL,0FFH ; ; 4.26附加段中有某字符串首址为BLOCK,长17个字节。欲查找其中第一次出现字符“e”的位置,并将该位置所在的偏移量入栈保护。试在下面程序段的空白处填上适当的指令(并加入必要的注释)或操作数以实现上述功能。

MOV DI, OFFSET BLOCK ; 送BLOCK 的偏移量 MOV AL, 65H ; 送eASCII码 MOV CX, 17 ; 送计数值

CLD ; 方向标志位清零 REPNZ SCASB ; 寻找e JNE OTHER ; 找到e转到OTHER DEC DI ; 修改地址 PUSH DI ; 偏移量入栈保护 OTHER:……(略)

4.27已知有某字串BUF1的首址为0000H,BUF2的首址为0010H,数据段与附加段重合。欲从BUF1处开始将10个字数据顺序传送至BUF2处,试在下面程序段的空白处填上适当的指令或操作数以实现上述功能。

LEA SI,BUF1 ; 送BUF1的偏移量 ADD SI, 12H ; 地址移动到字符串最后 LEA DI,BUF2 ; 送BUF2的偏移量 ADD DI, 12H ; 地址移动到字符串最后 STD ; 方向标志位清零 MOV CX, 10 ; 送计数值 REP MOVSW ; 进行串操作 4.28在DAT和DAT1两个字节变量单元中有两个十进制数的ASCII码,编程实现将这两个ASCII码转换为两个BCD码,并以压缩形式存放在REST字节变量单元中。试填写该程序划线部分,并加入必要的注释。

MOV AL,DAT ;取第一个数

SUB AL,30H ;将ASCII码转为BCD码 MOV CL,4 ; 送移位数 SHL AL,CL ;将BCD码放在AL高四位中

12

微 机 原 理 及 应 用 B 作 业

MOV BL,DAT1 ;取第二个数

SUB BL,30H ;将DAT1中的ASCII码转为BCD码 OR AL,BL ;将两个BCD码合并在AL寄存器中 MOV REST,AL ;将压缩形式的BCD码存人REST中 HLT

第 五 章 汇编语言程序设计

5.1 答:标号在指令性指令的名字,写在指令前面,标号后必须有冒号。变量在伪指令前是定义某一数据区所起的名字,它后面不带冒号。标号和变量都有段、偏移量的属性,标号的类型是远和近型,变量的类型是字节、字、双字等。

5.2 答:指令性指令是给CPU的命令,它是由

07H ←0100H ADD1

汇编程序翻译成机器语言指令,在程序运行时由CPU

00H

来执行,每条指令都对应CPU一种特定的操作。伪

00H

指令不汇编成机器语言,仅仅在汇编过程中告诉汇编

00H

程序应如何汇编。

01H

5.3 答:ADD1、ADD2、ADD3的段基址为1000H;00H

00H ADD1、偏移量为2000H、类型为双字;ADD2、

00H 偏移量为2018H、类型为字节;ADD3、偏移量为

2068H、类型为字。

…… 5.4

01H 2018H ADD2 答:分配情况如右图

04H 5.5答:(定义了堆栈段[81字节]、数据段(17

05H 字节)和代码段)

…… 02H 12H 9AH 56H 42H 41H

1006H ADD1

1009H ADD2 题5.4图

05H 05H 05H 07H 01H …… …… 05H 05H

2068H ADD3 题5.3图

←0100H ADD1

13

微 机 原 理 及 应 用 B 作 业

5.6答:ADD1占有多少个字节 5.7答: 1.依据设计任务,抽象出描述问题的数 学模型。2.确定实现数学模型的算法或求解的具体 …… 步骤和方法。3.绘制出程序流程框图。 4.分配存05 储空间及工作单元(包括寄存器)。确定数据段、堆 栈段、代码段及附加段在内存中的位置。 5.依 0127H题5.6图 据流程图编写程序。6.静态检查。7.上机调试。8.程序运行,结果分析。

5.8 答: 源程序结构一般包括4个段,它们是代码段、数据段、附加段和堆栈段。其中代码段是必须存在的,其余段视具体情况而定。

一般用到四种程序结构:顺序结构,分支结构,循环结构,子程序结构。 5.9 答: XOR AX, AX MOV DX , 0

MOV AH,45H MOV DL,AH AND DL,0FH ADD DL, 30H AND AH,0F0H MOV CL,4 SHR AH,CL ADD DL, 30H ADD AX,DX HLT

5.10 答: MOV AL , A MOV BL , B

…… IMUL BL

94H ← DATA1

MOV CX , C

16H

ADD AX , CX

26H

SUB AX , 18

89H

HLT

30H ← DATA2

(1)从DATA1单元开始,将8个组合BCD

55H 码累加起来,其和(超过1字节)存入以RES

为首址的单元中(低位在前)。 04H

74H 图5-1 5.11题图

← RES …… (2)将它们看作2个分别以DATA1、DATA2

为首址的4位十进制数(低位在前),求此两数

之差并存入以RES为首址的单元中。

答: 1、 LEA SI , DATA1 2、LEA SI , DATA1 LEA DI , DATA2 LEA DI , DATA2 LEA BX , RES LEA BX , RES

14

微 机 原 理 及 应 用 B 作 业

MOV CX ,7 XOR AX , AX

XOR AX , AX MOV AX , WORD PTR [SI] MOV AL , BYTE PTR [SI] ADD AX , WORD PTR [DI] AA1:INC SI MOV DX , WORD PTR [SI+2] ADD AL , BYTE PTR [SI] ADC DX , WORD PTR [DI+2] ADC AH , 0 MOV WORD PTR [BX] , AX LOOP AA1 MOV WORD PTR [DI+2] , DX MOV WORD PTR [BX] , AX HLT HLT

5.12 答:根据各种条件判断和比较进行操作,满足条件去做一种操作,不满足条件去做另一种操作。每一种操作程序称为一个分支,一次判断产生两个分支,只有一次判断的称为单重分支程序。多次判断产生多个分支,称为多重分支程序。

5.13 答:MOV AL,DAT AND AL,DAT

JNS POSI ;若为正数转POS1 TEST AL,01H ;测试负数的奇偶性 JZ M ;若为负偶数转M

OR AL,BUF ;若为负奇数进行‘或’运算

JMP DONE

M:XOR AL,BUF ;负偶数进行‘异或’运算 JMP DONE

POSI:TEST AL,01H ;判断正数的奇偶性

JZ N ;为正偶数,转N

ADD AL,BUF ;为正奇数进行‘加’运算 JMP DONE

N:AND AL,BUF ;正偶数进行‘与’运算 DONE:MOV BUF,AL

HLT

5.14 答:实现的方法仍是两两进行比较判断。其步骤是:先取出X,Y,Z,假设

15


兰州理工大学微机原理习题集作业答案1-5章(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:各工种操作标准、质量标准[1] - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: