微型计算机原理及应用 第四版 课后答案 (郑学坚 朱定华).doc
文本预览下载声明
微机原理第七章答案
7.3 设AX=1122,BX=3344H,CX=5566H,SS=095BH,SP=0040H,下述程序执行后AX,BX,CX,DX 4个通用寄存器内容是多少?画出堆栈存储器的物理地址及存储内容和SP指向的示意图。
PUSH AX
PUSH BX
PUSH CX
POP BX
POP AX
POP DX
参考答案:(BX)=5566H, (AX)=3344H, (DX)=1122H,(CX)=5566H
堆栈段物理地址=SS*16(左移4位)+SP
7.4 设 SP=0040H,如果用进栈指令存入5个数据,则SP=0036H ,若用出栈指令取出两个数据,则SP=003AH 。
7.5将表中程序段各指令执行后AX的值用十六进制数填入表中
参考答案:
程序段 AX 程序段 AX MOV AX,0 0 OR AX,3FDFH BFDFH DEC AX FFFFH AND AX,0EBEDH ABCDH ADD AX,7FFFH 7FFEH XCHG AH,AL CDABH ADC AX,1 8000H SAL AX,1 9B56H NEG AX 8000H RCL AX,1 36ADH
7.6 用十六进制数填下表,已知DS=1000H,ES=2000H,SS=0FC0H,通用寄存器的值为0。
参考答案:逻辑地址=段基址:段内偏移地址
BP以SS为默认段基址,其余寄存器以DS为默认段基址
ES:为段前缀,以ES为段基址
指令 存储器操作数逻辑地址 SUB [BP],AL 0FC0H:0000H MOV [BX],BH 1000H:0000H MOV [DI],DL 1000H:0000H MOV ES:[SI],BL 2000H:0000H ADD 500H[BP],AH 0FC0H:0500H SUB [SI-300H],AL 1000H:FD00H MOV 1000H[DI],DL 1000H:1000H MOV [BX-8],CL 1000H:FFF8H MOV ES:1000H[DI],CH 2000H:1000H MOV [BP+SI],DH 0FC0H:0000H MOV [BX+DI],DL 1000H:0000H
7.7 试给出执行完下列指令后OF、SF、ZF、CF4个可测试标志位的状态(用十六进制给出FLAG的值,其余各位为0)
(1)MOV AX,2345H (2) MOV BX,5439H
ADD AX,3219H ADD BX,456AH
(3)MOV CX,3579H (4) MOV DX,9D82H
SUB CX,4EC1H SUB DX,4B5FH
OF DF IF TF SF ZF 0 AF 0 PF 0 CF 溢出 方向 中断 陷阱 符号 为零 辅进 奇偶 进位
参考答案:(这里除了上面4个标志还考虑了奇偶标志PF和辅助进位标志AF)
(1)AX=555EH FLAG=0000H
OF DF IF TF SF ZF 0 AF 0 PF 0 CF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (2)BX=99A3H FLAG=0894H
OF DF IF TF SF ZF 0 AF 0 PF 0 CF 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 (3)CX=E6B8 FLAG=0081H
OF DF IF TF SF ZF 0 AF 0 PF 0 CF 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 (4)DX=5223 FLAG=0014H
OF DF IF TF SF ZF AF PF 0 CF 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
7.8 AX 中有一负数,欲求其绝对值,若该数为补码,则使用指令 NEG AX ;若为原码则用指令AND AX,7FFFH。 。
7.9 分别写出实现如下功能的程序段:
(1)将AX中间8位(做高8位),BX低4位和DX高4位(做低4位)拼成一个新字。(注意:左移右移操作)
AND AX,0FF0H
MOV CL,04H
SHL AX,CL
AND BL,0FH
AND DH,0F0H
SHR DH
显示全部