汇编语言习题1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指 3305H 3306H : 3405H 3406H : 3505H 3506H 26H 37H : 78H 69H : A6H 35H 令 结果 00H 0D01H 81H 0400H 48D0H 1EH OF SF ZF PF CF 0 0 1 1 1 0 1 0 0 0 0 0 1 0
(1) SHR BH,1 (2) SAR SI,CL (3) ROR CH,1 (4) ROL BX,CL (5) SAL AX,CL (6) SAR BYTE PTR[SI],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。
3305H 3306H : 3405H 3406H : 3505H 3506H 26H 37H : 78H 69H : A6H 35H
; AX=100H ; DL=03H ; AX=6978H ; AL=69H ; BX=3726H
(2) MOV DL,CH (3) MOV AX,[SI] (4) MOV AL,[SI+1] (5) MOV BX,[SI-100H]
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。
指 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
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。
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
(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)
编制程序将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
0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 × 1 0
标志位不受影响 0 0 0 × 1 0 0
0 0 0 0 0 0
0 0 1 × 1
注:这里×表示状态不确定
条件同5.5 5.5题 5.7 条件同5.5题,指出下述移位指令执行后目标地 址中的内容及标志位状态。 址中的内容及标志位状态。 (AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1)
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 编写完成下列功能的小程序段。
(1)将寄存器AL的第3,4位变反,其余位保持不变。 解: XOR AL,18H (2)将寄存器AL的第3,4位清零,其余位保持不变。 解: AND AL,0E7H (3)将寄存器AL的第3,4位置1,其余位保持不变。 解: OR AL,18H
已知数据定义如下, 已知数据定义如下,则给定的程序段执 行后,寄存器AX的内容是多少? AX的内容是多少 行后,寄存器AX的内容是多少?
1.DATA DATA 0AH 14H 1EH 28H 32H ENTER 03H 00H MOV ADD MOV ENTER : : BX,OFFSET DATA BX,ENTER AX,[BX] AX= 3228H DB DW 10,20,30,40,50 3
习题பைடு நூலகம்
第三章 第四章 第五章 第六章
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。
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。指出下述指令中存储器操作数的 有效地址和实际地址。 有效地址和实际地址。 (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。
编写完成下列功能的小程序段。 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。指出下述指令中存储器操作数的 有效地址和实际地址。 有效地址和实际地址。
(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。
已知数据定义如下, 已知数据定义如下,则给定的程序 段执行后,寄存器AX的内容是多少? AX的内容是多少 段执行后,寄存器AX的内容是多少? DATA
2.DATA ENTER : : MOV MOV MOV BX,OFFSET DATA SI,ENTER AX,[BX+SI] AX= 1E00H
ENTER
(1) SHR BH,1 (2) SAR SI,CL (3) ROR CH,1 (4) ROL BX,CL (5) SAL AX,CL (6) SAR BYTE PTR[SI],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。
3305H 3306H : 3405H 3406H : 3505H 3506H 26H 37H : 78H 69H : A6H 35H
; AX=100H ; DL=03H ; AX=6978H ; AL=69H ; BX=3726H
(2) MOV DL,CH (3) MOV AX,[SI] (4) MOV AL,[SI+1] (5) MOV BX,[SI-100H]
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。
指 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
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。
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
(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)
编制程序将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
0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 × 1 0
标志位不受影响 0 0 0 × 1 0 0
0 0 0 0 0 0
0 0 1 × 1
注:这里×表示状态不确定
条件同5.5 5.5题 5.7 条件同5.5题,指出下述移位指令执行后目标地 址中的内容及标志位状态。 址中的内容及标志位状态。 (AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1)
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 编写完成下列功能的小程序段。
(1)将寄存器AL的第3,4位变反,其余位保持不变。 解: XOR AL,18H (2)将寄存器AL的第3,4位清零,其余位保持不变。 解: AND AL,0E7H (3)将寄存器AL的第3,4位置1,其余位保持不变。 解: OR AL,18H
已知数据定义如下, 已知数据定义如下,则给定的程序段执 行后,寄存器AX的内容是多少? AX的内容是多少 行后,寄存器AX的内容是多少?
1.DATA DATA 0AH 14H 1EH 28H 32H ENTER 03H 00H MOV ADD MOV ENTER : : BX,OFFSET DATA BX,ENTER AX,[BX] AX= 3228H DB DW 10,20,30,40,50 3
习题பைடு நூலகம்
第三章 第四章 第五章 第六章
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。
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。指出下述指令中存储器操作数的 有效地址和实际地址。 有效地址和实际地址。 (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。
编写完成下列功能的小程序段。 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。指出下述指令中存储器操作数的 有效地址和实际地址。 有效地址和实际地址。
(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。
已知数据定义如下, 已知数据定义如下,则给定的程序 段执行后,寄存器AX的内容是多少? AX的内容是多少 段执行后,寄存器AX的内容是多少? DATA
2.DATA ENTER : : MOV MOV MOV BX,OFFSET DATA SI,ENTER AX,[BX+SI] AX= 1E00H
ENTER