汇编语言习题1
已知数据定义如下, 已知数据定义如下,则给定的程序 段执行后,寄存器AX的内容是多少? AX的内容是多少 段执行后,寄存器AX的内容是多少? DATA
2.DATA ENTER : : MOV MOV MOV BX,OFFSET DATA SI,ENTER AX,[BX+SI] AX= 1E00H
ENTER
0AH 00H
DW DW
10,20,30,40,50 3
14H 00H 1EH 00H 28H 00H 32H 00H 03H 00H
5.5 已知: AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1, 已知: 当前数据段中 (3305H)=26H,(3306H)=37H,(3405H)=78H, (3406H)=69H,(3505H)=35A6H,DX=3205H,指出下述各条指 (3406H)=69H,(3505H)=35A6H,DX=3205H,指出下述各条指 令执行后目标地址中的数值。 令执行后目标地址中的数值。 (1) MOV AX,BX
指 3305H 3306H : 3405H 3406H : 3505H 3506H 26H 37H : 78H 69H : A6H 35H 令 结果 1334H 0FFH 34H 24H 0FEFFH 03H 47DAH 00H OF SF ZF AF PF CF 0 0 0 0 0 0
(1) ADD AX,BX (2) SUB BH,CL (3) CMP AL,[SI-100H] (4) AND AL,[SI][BX] (5) NOT BX (6) OR BL,CH (7) ADD [SI][BX],AX (8) XOR AH,AH
(6) MOV DX,-200H[BX][SI] ; DX=3726H (7) MOV [BX][SI],CX (8) MOV [BX],AX ; (3505H)=0302H ; (100H)=1234H
条件同上题, 5.6 条件同上题,指出下述指令执行后的结果和标志 位状态。 位状态。 (AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1)
CF B7
AL B6B5B4B3B2B1B00 AH B7X X X X X X X
CF B6
AL B5B4B3B2B1B000 AH B6B7X X X X X X
CF B5
AL B4B3B2B1B0000 AH B5B6B7 X X X X X
编制程序将AL中的第i,i+1位写入MEM AL中的第i,i+1位写入MEM单元 5.10 编制程序将AL中的第i,i+1位写入MEM单元 的第i,i+1 i,i+1位 其它位的内容不变。 的第i,i+1位,其它位的内容不变。
习题
第三章 第四章 第五章 第六章
3.15 已知:BX=1234H,BP=5678H, SI=1357H,DS=0925H, 已知:BX=1234H,BP=5678H, SS=0468H,CS=4B10H。 SS=0468H,CS=4B10H。指出下述指令中存储器操作数的 有效地址和实际地址。 有效地址和实际地址。 解答这类问题,首先要明确哪一个操作数是存储器 操作数,进而确定其寻址方式,并根据寻址方式计算有 效地址。要计算实际地址,则必须明确操作数处于哪一 个逻辑段中,再根据相应段寄存器的内容得到段基址, 加上有效地址即为实际地址。 (1) MOV AL,[BX] 解:该指令的源操作数为存储器操作数,其寻址方式为 寄存器间接寻址,故BX的内容1234H即为有效地址。 操作数所处段为隐含段数据段,故段基址为09250H, 所以实际地址=段基址+有效地址 =09250H+1234H=0A484H。
编写完成下列功能的小程序段。 5.8 编写完成下列功能的小程序段。
(4)DX和AX联合存放一个32位整数(DX存放高16位), 将该数据逻辑左移一位。 解: SHL AX,1 RCL DX,1 (5)内存单元MEMB存放着一个8位的数据,将它的高4位 和低4位互换。 解: MOV CL,4 ROR MEMB,CL
3.15 已知:BX=1234H,BP=5678H, SI=1357H,DS=0925H, 已知:BX=1234H,BP=5678H, SS=0468H,CS=4B10H。 SS=0468H,CS=4B10H。指出下述指令中存储器操作数的 有效地址和实际地址。 有效地址和实际地址。
(2) MOV AH,[BP] 解:该指令的源操作数为存储器操作数,其寻址方式为基址 寻址,故有效地址为BP的内容5678H。操作数所处段为隐 含段堆栈段,故段基址为04680H,所以实际地址=段基址+ 有效地址=04680H+5678H=09CF8H。 (3) MOV BH,CS:[SI] 解:该指令的源操作数为存储器操作数,其寻址方式为寄 存器间接寻址,故SI的内容1357H即为有效地址。操作 数所处段为代码段,故段基址为4B100H,所以实际地址 =段基址+有效地址=4B100H+1357H=4C457H。
3.15 已知:BX=1234H,BP=5678H, SI=1357H,DS=0925H, 已知:BX=1234H,BP=5678H, SS=0468H,CS=4B10H。 SS=0468H,CS=4B10H。指出下述指令中存储器操作数的 有效地址和实际地址。 有效地址和实际地址。
(6) MOV CL,SS:[SI+50H] 解:该指令的源操作数为存储器操作数,其寻址方式为变 址寻址,故有效地址为SI的内容1357H+50H=13A7H。操作 数所处段为堆栈段,故段基址为04680H,所以实际地址=段 基址+有效地址=04680H+13A7H=05A27H。 (7) MOV BL,DS:[BP+30H] 解:该指令的源操作数为存储器操作数,其寻址方式为基 址寻址,故有效地址为BP的内容5678H+30H=56A8H。操 作数所处段为数据段,故段基址为09250H,所以实际地址= 段基址+有效地址=09250H+56A8H=0E8F8H。
3.15 已知:BX=1234H,BP=5678H, SI=1357H,DS=0925H, 已知:BX=1234H,BP=5678H, SS=0468H,CS=4B10H。 SS=0468H,CS=4B10H。指出下述指令中存储器操作数的 有效地址和实际地址。 有效地址和实际地址。
(4) MOV DL,[SI+10H] 解:该指令的源操作数为存储器操作数,其寻址方式为变 址寻址,故有效地址为SI的内容1357H+10H=1367H。操作 数所处段为隐含段数据段,故段基址为09250H,所以实际地 址=段基址+有效地址=09250H+1367H=0A5B7H。 (5) MOV CH,[BP+20H] 解:该指令的源操作数为存储器操作数,其寻址方式为基 址寻址,故有效地址为BP的内容5678H+20H=5698H。操作 数所处段为隐含段堆栈段,故段基址为04680H,所以实际地 址=段基址+有效地址=04680H+5698H=09D18H。
编制程序将AL中的第7位和第0 AL中的第 5.9 编制程序将AL中的第7位和第0位,第6 位和第1 位和第2 位和第3位互换。 位和第1位,第5位和第2位,第4位和第3位互换。
解: SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 MOV AL,AH
3.15 已知:BX=1234H,BP=5678H, SI=1357H,DS=0925H, 已知:BX=1234H,BP=5678H, SS=0468H,CS=4B10H。 SS=0468H,CS=4B10H。指出下述指令中存储器操作数的 有效地址和实际地址。 有效地址和实际地址。 (8) MOV [BP+SI+30H],AL 解:该指令的目标操作数为存储器操作数,其寻址方式为 基址变址寻址,故有效地址为5678H+1357H+30H=69FFH。 操作数所处段为隐含段堆栈段,故段基址为04680H,所以实 际地址=段基址+有效地址=04680H+69FFH=0B07FH。 (9) MOV [BX+SI-40H],AH 解:该指令的目标操作数为存储器操作数,其寻址方式为 基址变址寻址,故有效地址为1234H+1357H-40H=254BH。 操作数所处段为隐含段数据段,故段基址为09250H,所以实 际地址=段基址+有效地址=09250H+254BH=0B79BH。
3.15 已知:BX=1234H,BP=5678H, SI=1357H,DS=0925H, 已知:BX=1234H,BP=5678H, SS=0468H,CS=4B10H。 SS=0468H,CS=4B10H。指出下述指令中存储器操作数的 有效地址和实际地址。 有效地址和实际地址。 (10) MOV CS:[BX+SI],DH 解:该指令的目标操作数为存储器操作数,其寻址方式为 基址变址寻址,故有效地址为1234H+1357H=258BH。 操作数所处段为代码段,故段基址为4B100H,所以实际 地址=段基址+有效地址=4B100H+258BH=4D68BH。
0 0 0 0 0 0 0 0 1 0 0 0
(7) RCR BYTE PTR[BX][SI],1 0D3H (8) SHL WORD PTR[SI],1
0D2F0H 1 1 0 1 0
注:这里×表示状态不确定,空白表示不受影响。
编写完成下列功能的小程序段。 5.8 编写完成下列功能的小程序段。