1.执行系列指令后: MOV AL, 7 MOV BL, 9
MUL BL
结果为:AX= 003FH 。 2.假设程序段如下:
MOV AX, 5439H MOV BX, 456AH
ADD AX, BX 则AX= 99A3H ,CF= 0 、PF= 1 、 AF= 1 、OF= 1 。 3.说明下列指令中源操作数属于什么寻址方式:
(1) MOV AL, [DI+5]; 寄存器相对寻址
(2) MOV AL, [BX]; 寄存器间接寻址 (3) ADD AL, 80H; 立即数寻址 。
4.对于指令MOV BX,[BP+SI],如果指令执行前,(DS)=3F00H,(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=4154H,(3F246H)=1245H,则执行指令后,(BX)= 4154H 。 二、程序分析题
1. 已知(60000H)=12H, (60001H)=43H, (60002H)=78H, (60003H)=0ABH, (60004H)=0FH;(70000H)=02H, (70001H)=63H, (70002H)=89H, (70003H)=0FAH, (70004H)=24H,执行下列程序,填入指定寄存器的当前内容。
MOV AX,7000H MOV DS, AX MOV AX, 6000H MOV SS, AX MOV BX, 0 MOV BP, 0
MOV SI, 2
MOV AX, [0000H] ; AX= 6302 H MOV AL, [BX] ; AL= 02 H MOV AX, [BX+1] ; AX= 8963 H
MOV AX, [BP+SI] ; AX= 0AB78 H 2. 设堆栈段地址SS的内容是9000H,堆栈指针SP的初值为3815H,AX=1234H,BX=
5678H,试问:
(1) 执行指令 PUSH AX
PUSH BX
后SP= 3811H
并把数据入堆存放情况在下面存储空间示意图中填入:
9000:3811H 9000:3812H 9000:3813H 9000:3814H 9000:3815H 9000:3816H 9000:3817H 9000:3818H 9000:3819H 地址 78H 56H 34H 12H 存储空间
(2) 接着再执行POP AX 后SP= 3813H ,AX= 5678H ,BX=
5678H 。
3、图1为逻辑右移指令SHR图示,若(AX)=8180H,阅读程序,写出程序执行完毕后AX的值。(共5分)
… … MOV CL,3
SHR AX, CL
MOV BX, AX MOV CL, 2
SHR AX, CL 图1 逻辑右移指令SHR图示 ADD BX, AX MOV AX, BX
… …
程序执行完毕后,(AX)=_143CH______________。
4、 图2为SHL指令图示,右边还给出了单标志指令的说明。请在下面程序段的每一空框内填入一条语句(不得修改其它语句),以实现下述功能:将字变量VARM1中的非零数据左移到最高位为“1”止,左移次数存入字节变量VARB中,左移后的结果存入字变量VARW中。
MOV BL,0 MOV AX,VARW1
LJH: TEST AX,8000H 图2 SHL指令图示 JNZ DONE 或 (JS DONE) 单标志测试指令说明: GOON: INC BL 指令助记符 测试条件
SHL AX, 1 JNZ ZF=0 JNS GOON或(JNS LJH或JMP LJH) JZ ZF=1
DONE: MOV VARW, AX JC CF=1 MOV VARB, BL JNC CF=0 HLT JNS SF=0 JS SF=1
因篇幅问题不能全部显示,请点此查看更多更全内容