微机原理课后题目答案(3)

2019-04-01 18:25

MOV AL,5

MOV BX,OFFSET TABLE XLAT TABLE MOV CL,AL MOV AL,7 XLAT TABLE MOV BL,AL

MOV BH,CL

8. 已知当前SS=1050H,SP=0100H,AX=4860H,BX=1287H,试用示意图表示执行下列指 令过程中,堆栈中的内容和堆栈指针SP 是怎样变化的。 PUSH AX PUSH BX

POP BX POP AX 答:(1)指令执行前 (2)执行PUSH AX 后 ……

10500H

(3)执行PUSH BX 后 (4)执行POP BX 后 (5)执行POP AX 后 …… 87H

12H 60H 48H

9. 下列指令完成什么功能?

(1)ADD AL,DH (2)ADC BX,CX (3)SUB AX,2710H (4)DEC BX (5)NEG CX (6)INC BL

(7)MUL BX (8)DIV CL 答:(1)AL+DH→AL (2)BX+CX+CF→BX (3)AX-2710H→AX (4)BX-1→BX (5)0-CX→CX (6)BL+1→BL

(7)AX*BX→DX,AX (8)AX/CL 商→AL,余数→AH

10. 已知AX=2508H,BX=0F36H,CX=0004H,DX=1864H,求下列每条指令执行后的结果 是什么?标志位CF 等于什么?

(1)AND AH,CL (2)OR BL,30H (3)NOT AX SP-> SP-> 10500H …… 60H 48H SP->

……

10500H 10500H ……

48H 60H 12H 87H SP-> 48H 60H 12H 87H 10500H

SP->

(4)XOR CX,0FFF0H (5)TEST DH,0FH (6)CMP CX,00H (7)SHR DX,CL (8)SAR AL,1 (9)SHL BH,CL (10)SAL AX,1 (11)RCL BX,1 (12)ROR DX,CL 答:(1)AX=0408H,CF=0 (2)BX=0F36H,CF=0 (3)AX=0DAF7H,CF 不变 (4)CX=0FFF4H,CF=0 (5)DX=01864H,CF=0 (6)CX=0004H,CF=0 (7)DX=0186H,CF=0 (8)AX=2504H,CF=0 (9)BX=0F036H,CF=0 (10)AX=4A10H,CF=0 (11)BX=1E6C/1E6DH,CF=0 (12)DX=4186H,CF=0 11. 假设数据段定义如下:

DATA SEGMENT

STRING DB ?The Personal Computer & TV? DATA ENDS

试用字符串操作等指令编程完成以下功能:

(1)把该字符串传送到附加段中偏移量为GET_CHAR 开始的内存单元中。

(2)比较该字符串是否与?The Computer?相同,若相同则将AL 寄存器的内容置1,否则置 0。并要求将比较次数送到BL 寄存器中。

(3)检查该字符串是否有?&?,若有则用空格字符将其替换。

(4)把字符串大写字母传送到附加段中以CAPS 开始的单元中,其余字符传到以CHART 开始的单元中。然后将数据段中存储上述字符串的单元清0。 答:(1) CLD LEA SI,STRING LEA DI,GET_CHAR MOV CX,26 REP MOVSB

(2)补充在附加段定义 STRING1 DB ?The computer? MOV AL,1 CLD

LEA SI,STRING LEA DI,STRING1 MOV CX,12 REPZ CMPSB

JZ SKIP

MOV AL,0

SKIP: MOV BX,12 SUB BX,CX

(3) MOV AX, DATA MOV ES, AX CLD

MOV AL,'&' LEA DI,STRING MOV CX,26

NEXT: REPNE SCASB JZ FIND

JMP EXIT

FIND: MOV BYTE PTR [DI-1], ' ' JCXZ EXIT JMP NEXT

EXIT:

(4) LEA SI,STRING LEA DI,CAPS LEA BX,CHART MOV CX,26 NEXT: MOV AL, [SI] CMP AL,?A? JB OTHER CMP AL,?Z? JA OTHER

MOV ES:[DI],AL

INC DI JMP SKIP

OTHER: MOV ES:[BX],AL INC BX

SKIP: MOV BYTE PTR[SI],0

INC SI

LOOP NEXT

12. 编程将AX 寄存器中的内容以相反的顺序传送到DX 寄存器中,并要求AX 中的内容不 被破坏,然后统计DX 寄存器中?1?的个数是多少。 答:: MOV BL,0 PUSH AX MOV DX,0 MOV CX,16 NEXT: SHL AX,1 JNC SKIP INC BL

SKIP: RCR DX,1

LOOP NEXT

STOP: POP AX

13. 设CS=1200H,IP=0100H,SS=5000H,SP=0400H,DS=2000H,SI=3000H,BX=0300H, (20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PROG_N 标号的地址为1200: 0278H,PROG_F 标号的地址为3400H:0ABCH。说明下列每条指令执行完后,程序将分别 转移到何处执行? (1)JMP PROG_N (2)JMP BX (3)JMP [BX] (4)JMP FAR PROG_F (5)JMP DWORD PTR [BX]

如将上述指令中的操作码JMP 改成CALL,则每条指令执行完后,程序转向何处执行?并 请画图说明堆栈中的内容和堆栈指针如何变化。 答:(1)1200H:0278H (2)1200H:0300H (3)1200H:4800H

(4)3400H:0ABCH (5)00FFH:4800H

将操作码JMP 改成CALL 后:

(1)1200H:0278H

指令长度为3,则IP=0100H+3=0103H,入栈 …… 03H 01H

5000H:0000H 5000H:03FEH 5000H:0400H

􀃅SP

(2)1200H:0300H

指令长度为2,则IP=0100H+2=0102H,入栈 …… 02H

01H

(3)1200H:4800H

指令长度为2,则IP=0100H+2=0102H,入栈 …… 02H

01H

(4)3400H:0ABCH

指令长度为5,则IP=0100H+5=0105H,入栈 …… 05H 01H 00H

12H

(5)00FFH:4800H

指令长度为2,则IP=0100H+2=0102H,入栈 5000H:0000H 5000H:03FEH 5000H:0400H 􀃅SP 5000H:0000H 5000H:03FEH 5000H:0400H 􀃅SP 5000H:0000H

5000H:03FCH 􀃅SP 5000H:03FEH 5000H:0400H …… 02H 01H 00H

12H

14. 在下列程序段括号中分别填入以下指令

(1)LOOP NEXT (2) LOOPE NEXT (3) LOOPNE NEXT

试说明在这三种情况下,程序段执行完后,AX,BX,CX,DX 的内容分别是什么。 START: MOV AX,01H MOV BX,02H MOV DX,03H MOV CX,04H NEXT: INC AX ADD BX,AX SHR DX,1

( ) 答:(1) AX=05H BX=10H CX=0 DX=0 (2) AX=02H BX=04H CX=03H DX=01H (3) AX=03H BX=07H CX=02H DX=0

15. 某班有7 个同学英语成绩低于80 分,分数存在ARRAY 数组中,试编程完成以下工作: (1)给每人加 5 分,结果存到 NEW 数组中 (2)把总分存到SUM 单元中

答: DATA SEGMENT

ARRAY DB ?,?,?,?,?,?,? NEW DB 7 DUP(?) SUM DW 0 DATA ENDS MOV AX,DATA MOV DS, AX


微机原理课后题目答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版数学八上第15章《整式乘除与因式分解》word学案8节

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

马上注册会员

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