微机原理第四章习题答案

合集下载

微机原理作业与答案第四章

微机原理作业与答案第四章

微机原理作业与答案第四章第四章汇编语⾔程序设计4-2 下列程序执⾏后,寄存器AX,BX,CX的内容分别是多少?ORG 0202HDA_WORD DW 20HMOV AX,DA_WORD ;(AX)=0020HMOV BX,OFFSET DA_WORD ;(BX)=0202H (BX)=0,这是书中的参考答案MOV CL,BYTE PTR DA_WORD ;(CL)=20H(因PTR,则字的第⼀字节)MOV CH,TYPE DA_WORD ;(CH)=2(变量类型数值);(CX)=0220H4-4 试编制⼀程序(不是程序段),把CHAR1中各⼩写字母分别转换为对应的⼤写字母,并存放在CHAR2开始的单元中DDD0 SEGMENTCHAR1 DB ‘abcdef’N EQU $-CHAR1;变量必须先定义后使⽤,⽽不能相反CHAR2 DB N DUP(0);不能把此句与上⼀句对调DDD0 ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDS ;P126(代码段和堆栈段是不可少的)CSEG SEGMENTASSUME CS:CSEG,DS:DDD0,SS:STACK START: MOV AX,DDD0 MOV DS,AX ;MOV DX,AXMOV ES,AX ;只要SI,DI都⽤MOV SI,0 ;LEA SI,CHAR1MOV DI,0 ;LEA DI,CHAR2MOV CX,NAGAIN: MOV AL,CHAR1[SI] ; MOV AL,[SI]SUB AL,20HMOV CHAR2[DI],AL ; MOV [DI],ALMOV DL,AL ;不是必须的,但做实验是有⽤的。

MOV AH,2INC SIINC DI LOOP AGAINMOV AH,4CHINT 21H ;不是必须的CSEG ENDSEND START第⼆种⽅法:DDD0 SEGMENTCHAR1 DB ‘abcdef’N EQU $-CHAR1CHAR2 DB N DUP(0) DDD0 ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDS ;P126(代码段和堆栈段是不可少的)CSEG SEGMENTASSUME CS:CSEG,DS:DDD0,SS:STACKSTART: MOV AX,DDD0 MOV DS,AXMOV ES,AXLEA SI,CHAR1LEA DI,CHAR2MOV CX,NCLD ;不写(隐含)也是0(递增)但不能STDAGAIN: LODSB ;执⾏⼀次,隐含修改SISUB AL,32stosb ;MOV [DI],AL;执⾏⼀次, 隐含修改DInop ;INC DILOOP AGAIN ;LOOP指令只修改CX,不管SI,DIMOV AH,4CHINT 21H ;不是必须的CSEG ENDSEND START4-6在BUF地址处起,存放有100个字节的字符串,设其中有⼀个以上的“A”字符,编程查找出第⼀个“A”字符相对起始地址的距离,并将其存⼊LEN单元。

微机原理第四章课后习题答案

微机原理第四章课后习题答案

第四章课后作业(6—27)6.试按下列要求分别编制程序段。

(1)把标志寄存器中符号位SF置“1”。

(2)寄存器AL中高、低四位互换。

(3)由寄存器AX、BX组成一个32位带符号数(AX中存放高16位),试求这个数的负数。

(4)现有三个字节存储单元A、B、C,在不使用ADD和ADC指令的情况下,实现(A)+(B) C。

(5)用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1 形成奇数)。

答:(1) LAHFOR AH,80HSAHF(2) MOV CL,4ROL AL,CL(3) MOV CX,0NEG BXJC CHGJMP GOCHG: MOV CX,1GO: NEG AXSUB AX,CX(4) MOV CL,AMOV AL,BMOV X,ALCHECK:INC XDEC CLJNZ CHECK(5) OR CX,0001H7.试给出下列各指令的机器目标代码。

(1)MOV BL,12H [SI](2)MOV 12H [SI],BL(3)SAL DX,1(4)AND 0ABH [BP] [DI],1234H答:(1)100010 1 0 01 011 100 00010010=8A5C12H(2)100010 0 0 01 011 100 00010010=885C12H(3)110100 0 1 11 100 010=0D1E2H(4)100000 0 1 10 100 011 10101011 00000000 00110100 00010010=81A3AB003412H8.执行下列指令:STR1 DW ‘AB’STR2 DB 16DUP(?)CNT EQU $-STR1MOV CX,CNTMOV AX,STR1HLT执行完成之后,寄存器CL的值是多少?寄存器AX的值是多少?答:因为CNT=16+2=18,所以CX=18=0012H,所以CL=12H=0001,0010;AX中装入的是‘AB’的ASCII码值,其中‘A’在高位AH中,‘B’在低位AL 中,所以AX=4142H=0100,0001,0100,0010。

微机原理、汇编语言与接口技术-第四章-习题答案-人民邮电出版社-(周杰英-张萍-郭雪梅-著)

微机原理、汇编语言与接口技术-第四章-习题答案-人民邮电出版社-(周杰英-张萍-郭雪梅-著)

微机原理、汇编语言与接口技术-第四章-习题答案-人民邮电出版社-(周杰英-张萍-郭雪梅-著)第4章汇编语言程序设计习题与参考答案1、指出以下数据定义伪指令所分配的字节数(8086系统)。

(1)DATA1 DB 10,?,‘A’(2)DATA2 DW 10 DUP(2,3 DUP(?),1)(3)DATA3 DB ‘HELLO,WORLD!’,‘$’(4)DATA4 DW D ATA4解:(1)3字节;(2)100字节;(3)13字节;(4)2字节。

2、指出以下数据定义伪指令所分配的字节数(80386系统)。

(1)DATA1 DF 12,34,56(2)DATA2 DF D ATA2(3)DATA3 DQ 0,10 DUP(?)(4)DATA4 DT 0,1,2解:(1)18字节;(3)6字节;(3)88字节;(4)30字节。

3、指出以下指令中哪些是无效的,并说明原因。

(1)ADDR DB $(2)DATA DB F0H,12H(3)1_DATA DW 1234H(4)@VAR DW V AR1 ;VAR1为一个字节变量(5)MOV AX,[10-VAR1] ;VAR1为一个字变量(6)MOV BX,[VAR2*2+1] ;VAR2为一个字变量解:(1)非法,地址计数器$是32位数;(2)非法,以字母开头的16进制数应在前面加“0”,即应为“0F0H”;(3)非法,变量名非法,不能以数字开头;(4)合法;(5)非法,地址表达式不能是“常数-地址”;(6)非法,地址表达式不能出现乘法。

4、假设已定义数据段如下:DATA SEGMENTORG 100HDATA1 DB 10 DUP(1,2,3)DATA2 DW DATA1,$DATA ENDS且段寄存器DS已初始化为该数据段的段基址(假设段基址为1234H)。

请指出以下指令执行后,相应的寄存器中的内容。

(1)MOV AX,WORD PTR DATA1 ;(AX)=?(2)MOV BX,DATA2 ;(BX)=?(3)MOV CX,DATA2+2 ;(CX)=?(4)MOV DX,OFFSET DATA2 ;(DX)=?(5)MOV SI,SEG DATA1 ;(SI)=?(6)MOV DI,LENGTH DATA1 ;(DI)=?(7)MOV SP,TYPE DATA1 ;(SP)=?(8)MOV BP,SIZE DATA2 ;(BP)=? 解:(注意是16进制,算的时候要转换) (1)(AX)=0201H;(2)(BX)=0100H;(3)(CX)=0120H;(4)(DX)=011EH;(5)(SI)=1234H;(6)(DI)=000AH;(7)(SP)=0001H;(8)(BP)=0002H。

微机原理课后答案 (4)

微机原理课后答案 (4)

微机原理课后答案第一章:计算机系统简介1.1 问题1.计算机硬件系统由哪些部分组成?2.什么是计算机软件系统?3.计算机的主要功能有哪些?1.2 答案1.计算机硬件系统由以下几部分组成:–中央处理器(CPU)–内存(Memory)–外部设备(包括输入设备和输出设备)2.计算机软件系统是指计算机系统中的各种软件程序的集合,包括系统软件和应用软件。

系统软件用于管理和控制计算机硬件系统的运行,例如操作系统、编译器、数据库管理系统等。

应用软件用于实现各种具体的应用功能,例如文字处理软件、图形设计软件、游戏等。

3.计算机的主要功能包括:–进行数据的输入、输出和存储。

–进行数据的处理和运算。

–运行各种软件程序,实现各种功能。

第二章:计算机的基本组成部分2.1 问题1.什么是计算机的存储器?2.什么是计算机的输入设备?3.什么是计算机的输出设备?2.2 答案1.计算机的存储器是指计算机中用于存储数据和程序的设备,包括主存储器和辅助存储器。

主存储器又称为内存,是计算机中用于存放程序和数据的临时存储区域,其容量相对较小但访问速度很快。

辅助存储器是用于永久性存储数据和程序的设备,例如硬盘、固态硬盘或者光盘。

2.计算机的输入设备是用于将外部数据或命令输入到计算机中的设备,常见的输入设备包括键盘、鼠标、扫描仪、摄像头等。

3.计算机的输出设备是用于将计算机处理后的结果或数据输出到外部的设备,常见的输出设备包括显示器、打印机、音频设备等。

第三章:计算机的运算方法3.1 问题1.什么是计算机的算术运算?2.什么是计算机的逻辑运算?3.什么是计算机的数据转移?3.2 答案1.计算机的算术运算是指计算机对数字数据进行加、减、乘、除等运算的过程。

算术运算包括整数运算和浮点数运算。

整数运算是指对整数进行计算的过程,浮点数运算是指对带有小数部分的实数进行计算的过程。

2.计算机的逻辑运算是指计算机对逻辑数据进行与、或、非等运算的过程。

逻辑运算常用于判断和决策的场景,例如判断某个条件是否为真、执行不同的分支等。

微机原理第四章习题及答案

微机原理第四章习题及答案

第四章8086/8088指令系统一、选择题1、在数据传送指令中要注意:立即数只能作为( A )。

A.源操作数B.源操作数或目的操作数C.目的操作数D.源操作数和目的操作数2、对堆栈进行存取操作时需遵守的原则是( B )。

A.先进先出B.先进后出C.任意顺序D.以上都不对3、MOV AX,[BP+SI]指令源操作数隐含的段地址为( D )。

A.CS B.DS C.ES D.SS4、堆栈指针SP的作用是用来指示( C )。

A.栈底地址B.下一条要执行指令的地址C.栈顶地址D.上一条要执行指令的地址5、在指令MOV AX,0执行后,CPU状态标志位ZF的取值( D )。

A.为0 B.为1 C.不确定D.没影响6、下列寄存器组中,全部用于寄存器间接寻址方式中的为( C )。

A.AX,BX,CX,IP B.BX,BP,DS,SIC.BP,BX,SI,DI D.IP,SP,AX,BX7、若8086 CPU工作于最小方式,则执行指令OUT DX,AL时其引脚信号M /IO和DT/R的电平应是( B )。

A.低,低B.低,高C.高,低D.高,高8、执行指令MOV AX,DATA后,AX中值为变量DATA的( D )。

A.段值B.偏移量值C.数据类型值D.地址DATA单元中的值9、下列指令中,不正确的指令是。

( D )A.MOV AX,BX B.MOV AX,[BX]C.MOV AL,BL D.MOV AL,[BL]10、8086CPU在执行MOV AL,[BX]指令的总线周期内,若BX存放的内容为1010H,则BHE和A0的状态是( C )。

A.0,0 B.0,1C.1,0 D.1,111、若DF=1,执行串操作指令MOVSW时,地址指针变化方式是( D )。

A.SI=SI + 1,DI = DI + 1B.SI = SI + 2,DI = DI + 2C.SI = SI-1,DI = DI-1D.SI = SI-2,DI = DI-212、条件转移指令JNE的条件是( C )。

微机原理第4章练习题及答案

微机原理第4章练习题及答案

微机原理第4章练习题及答案第4章 80x86指令系统一、自测练习题㈠选择题 1.MOV AX,[BX+SI]的源操作数的物理地址是( )。

A.(DS)×16+(BX)+(SI) B. (ES)×16+(BX)+(SI) C.(SS)×10H+(BX)+(SI) D.(CS)×10H+(BX)+(SI)2.MOV AX,[BP+Sl]的源操作数的物理地址是( )。

A.(DS)×10H+(BP)+(SI) A. (ES)×16+(BP)+(SI) C.(SS)×16+(BP)+(SI) D.(CS)×10H+(BP)+(SI) 3.MOV AX,ES:[BX+SI]的源操作数的物理地址是( )。

A.(DS)×16+(BX)+SI) B.(ES)×10H+(BX)+(SI) C.(SS)×10H+(BX)+SI) D.(CS)×16+(BX)+(SI)4.JMP WORD PTR[DI]是( )。

A.段内间接转移B.段间间接转移C.段内直接转移D.段间直接转移5.JMP FAR PTR BlOCK(BLOCK是符号地址)是( )。

A.段内间接转移B.段间间接转移C..段内直接转移D.段间直接转移6.INC指令不影响( )标志。

A.OF B.CF C.SF D.ZF 7.条件转移指令JNE的测试条件是( )。

A.ZF=1 B.CF=0 C.ZF=0 D.CF=1 8.下列指令中,有语法错误的是( )。

A.MOV [SI],[DI] B.IN AL,DX C.JMP WORD PTR[BX+8] D.PUSH WORD PTR 20[BX+S1] 9.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是。

A.20102H B.20101H C.200FEH D.200FFH 10.对于下列程序段:AGAIN:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用指令完成同样的功能。

微机原理第4章练习题及答案

微机原理第4章练习题及答案

微机原理第4章练习题及答案第4章 80x86指令系统一、自测练习题㈠选择题 1.MOV AX,[BX+SI]的源操作数的物理地址是( )。

A.(DS)×16+(BX)+(SI) B. (ES)×16+(BX)+(SI) C.(SS)×10H+(BX)+(SI) D.(CS)×10H+(BX)+(SI)2.MOV AX,[BP+Sl]的源操作数的物理地址是( )。

A.(DS)×10H+(BP)+(SI) A. (ES)×16+(BP)+(SI) C.(SS)×16+(BP)+(SI) D.(CS)×10H+(BP)+(SI) 3.MOV AX,ES:[BX+SI]的源操作数的物理地址是( )。

A.(DS)×16+(BX)+SI) B.(ES)×10H+(BX)+(SI) C.(SS)×10H+(BX)+SI) D.(CS)×16+(BX)+(SI)4.JMP WORD PTR[DI]是( )。

A.段内间接转移B.段间间接转移C.段内直接转移D.段间直接转移5.JMP FAR PTR BlOCK(BLOCK是符号地址)是( )。

A.段内间接转移B.段间间接转移C..段内直接转移D.段间直接转移6.INC指令不影响( )标志。

A.OF B.CF C.SF D.ZF 7.条件转移指令JNE的测试条件是( )。

A.ZF=1 B.CF=0 C.ZF=0 D.CF=1 8.下列指令中,有语法错误的是( )。

A.MOV [SI],[DI] B.IN AL,DX C.JMP WORD PTR[BX+8] D.PUSH WORD PTR 20[BX+S1] 9.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是。

A.20102H B.20101H C.200FEH D.200FFH 10.对于下列程序段:AGAIN:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用指令完成同样的功能。

微机原理 第四章答案

微机原理 第四章答案
14、设(BX)=0400H,(DI)=003CH,执行 LEA BX,[BX+DI+0F62H]后,(BX)=? (BX)=139E H
15、设(DS)=C000H,(C0010H)=0180H, (C0012H)=2000H,执行LDS SI,[10H]后, (SI)=?, (DS)=? (SI)=0180 H,(DS)=2000 H
REP STOSW 程序段的功能:
将起始地址为0404 H开始的80 H(128)个字单元清成0 或将起始地址为0404 H开始的100 H(256)个字节单元清成0
11
第4章 微型计算机原理作业情况
13、 设(BX)=6B30H,(BP)=0200H,(SI)=0046H, (SS)=2F00H,(2F246H)=4154H,试求执行 XCHG BX,[BP+SI]后, (BX)=?,(2F246H)=? (BX)=4154H (2F246H)=6B30H
6
第4章 微型计算机原理作业情况
8、分别执行下列指令,试求AL的内容及各状态标志位的状态。
(1) MOV AL,19H ;
ADD AL,61H ;(AL)=7AH
OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0
(2) MOV AL,19H ;
SUB AL,61
;(AL)=0DCH
OF=0 SF=1 ZF=0 AF=1 PF=0 CF=1
(1) MOV CL,20H[BX][SI] ;(CL)=0F6 H
(2) MOV [BP][DI],CX
;(1E4F6 H)=5678 H
(3) LEA BX,20H[BX][SI] ;(BX)=0056 H
MOV AX,2[BX]
;(AX)=1E40 H
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.8086语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快?答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。

其中寄存器寻址的指令执行速度最快。

2.若DS=6000H,SS=5000H,ES=4000H,SI=0100H,BX=0300H,BP=0400H,D=120 0H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少?(1)MOV AX,[64H]答:寻址方式为直接寻址;PA=60064H(2)MOV AX,NUM 答:寻址方式为直接寻址;PA=60005H (3)MOV AX,[SI]答:寻址方式为寄存器间接寻址;PA=60100H(4)MOV AX,[BX]答:寻址方式为寄存器间接寻址;PA=60300H(5)MOV AX,[BP]答:寻址方式为寄存器间接寻址;PA=50400H(6)MOV AL,[DI]答:寻址方式为寄存器间接寻址;PA=61200H (7)MOV AL,[BX+1110H]答:寻址方式为寄存器相对寻址;PA=61410H(8)MOV AX,NUM[BX]答:寻址方式为寄存器相对寻址;PA=60305H(9)MOV AX,[BX+SI]答:寻址方式为基址变址寻址;PA=60400H (10)MOV AX,NUM[BX][DI]答:寻址方式为相对基址变址寻址;PA=61505H3.设BX=637DH,SI=2A9BH,位移量为C237H,试确定由这些寄存器和下列寻址方式产生的有效地址。

(1)直接寻址答:有效地址为EA=C237H(2)用BX的寄存器间接寻址答:有效地址为EA=637DH(3)用BX的相对寄存器间接寻址答:有效地址为EA=125B4H(4)基址加变址寻址答:有效地址为EA=8E18H(5)相对基址变址寻址答:有效地址为EA=1504FH其中,(3)和(5)中产生进位,要把最高位1舍去。

4.指出下列指令是否正确,若不正确情说明原因。

(1)MOV DS, 2010H ;立即数不能传送到DS(2)PUSH AL ;栈操作,操作数类型必须为WORD类型(3)MOV DX,[SP] ;SP寄存器不能做间址寄存器(4)IN AL,0A00H ;I/O指令的直接寻址,地址只能为8位(5)XCHG CL,CH ;正确(6)SHR AX,3 ;移位超过一位时,应采用CL寄存器间址(7)AAA CX ;非组合的BCD码加法调整AAA指令应为隐含操作数(8)ADD [BP+DI] ;加法指令ADD,缺少源操作数(9)OUT DX,CL ;I/O指令操作数只能用AX、AL提供,端口地址可以是8位的直接地址或用DX间址(10)CBW BH ;符号扩展指令为隐含操作数(11)ADD 03ECH ;加法指令应为双操作数指令,立即数不能做目的操作数(12)MOV BX,[SI+DI] ;源操作数形式错误,SI和DI不能同时做为间址寄存器(13)MOV DI,[AX] ;AX不能做为间址寄存器(14)OUT 258H,BX ;I/O指令格式错误,见(9)题的解释(15)SHL AX,3 ;移位指令,位移位数大于1时,应用CL来指明(16)MOV 64H,AL;立即数不能做为目的操作数(17)ADD AL,6600H;源、目的操作数的类型不一致(18)MOV[BX],[SI];传送指令中,两个操作数不能同时为存储器操作数(19)XCHG AX,8800H;交换指令的操作数不能使用立即数(20)MOV AX,[BX+DX];传送指令的源操作数,不能使用立即数(21)LEA BX,1000H;有效地址传送指令的源操作数不能为立即数,必须是存储器操作数(22)DIV 0010H ;正确(23)LEA DX,DI ;同(21)题,源操作数不能为寄存器操作数(24)MUL AX,200H ;乘法指令的目的操作数是隐含的,不能出现在指令中(25)MOV AX,[BX+BP];传送指令中源操作数格式错,BX和BP不能同时为间址寄存器(26)CMP [BX],[SI] ;比较指令的两个操作数不能同时为存储器操作数(27)OUT DX,BX ;I/O指令中,源操作数只能使用AL或AX寄存器(28)AND OFH,AL ;“与”指令中,目的操作数不能使用立即数(29)SAL [BX],CX ;移位指令,移位位移不能用CX寄存器指明(30)JMP FAR [BX+SI] ;转移指令中转移的目标地址表达方式错误;如果是段内间接转移,应为:JMP WORD PTR[BX+SI];如果是段间间接转移,应为:JMP DWORD PTR[BX+SI](31)JNZ AAA;不相等转移指令中,符号地址(标识符)不能使用系统中的保留字(32)JMP NEXT ;正确(33)SBC AX,[DX] ;指令助记符错,源操作数表示方式错(34)MOV CS,DS;段寄存器之间不能传送数据,CS寄存器也不能做为目的操作数(35)ADD DS,AX ;加法指令中段寄存器不能做为操作数(36)MOV AL,CX ;源、目的操作数的类型不一致,见(17)题(37)INC [BX];没有指定存储器操作数类型(38)MOV CL,A8H;源操作数为16进制的立即数,16进制数以字母开头时应在前面加“0”(39)MOV ES,DS ;错同(34)题(40)IN AL,BX ;I/O指令端口地址表示错误,只能用8位立即数或DX间址5.设一个字节数据X存放AL寄存器中,试说明下列程序的功能:XOR AH,AH ;AH清零SAL AX,1 ;AX左移一位,相当于2XMOV BX,AX ;2X送BX暂存MOV CL,2SAL AX,CL ;AX左移二位,2X×4=8XADD AX,BX ;2X+8X=10X该段程序实现了字节数据X乘10,结果在AX中。

6.试编程实现:(1)AL寄存器的低4位清0(2)BL寄存器的低4位置1(3)CL寄存器的低4位取反(4)测试DL寄存器的最低2位是否同时为0,若是,将0送入BL寄存器;否则将1送入BL寄存器。

;①AL寄存器的低4位清0;②BL寄存器的低4位置1;③CL寄存器的低4位取反;④测试DL寄存器答:程序段如下AND AL,0F0HOR BL,0FHXOR CL,0FHTEST DL,03HJZ NEXTMOV BL,1JMP NEXT1NEXT:MOV BL,0NEXT1:HLT7.若有两个4字节的无符号数相加,这两个数分别存放在2000H和3000H开始的存储单元中,得到的和存放在2000H开始的内存单元。

试编程完成。

答:程序段如下MOV AX,[3000H]ADD [2000H],AXMOV AX,[3002H]ADC [2002H],AX8.设从2000H为首址的内存中,存放着10个带符号的字节数据,试编程完成:找出其中最大的数,并存入2000H单元。

答:程序段如下MOV BX,2000HMOV CX,9MOV AL,[BX]N2:INC BXCMP AL,[BX]JGE N1MOV AL,[BX]N1:LOOP N2MOV [2000H],ALHLT9.用寄存器间接寻址方式时,BX、BP、SI、DI分别针对什么情况来使用?用这4个寄存器分别组合间接寻址时,物理地址是怎样计算的?举例说明。

答:BX、SI、DI用于在数据段寻址,BP用于在堆栈段寻址。

在数据段物理地址为:PA=DS×10H+BX/SI/DI或者为:PA=DS×10H+BX+SI 或(BX+DI)在堆栈段物理地址为:PA=SS×10H+BP或者为:PA=SS×10H+BP+SI 或(BP+DI)举例如下:MOV AX,[BX+SI] ;在数据段寻址,PA=DS×10H+BX+SIMOV AX,[BP+DI] ;在堆栈段寻址,PA=SS×10H+BP+DI;答:执行完该条指令后AX=1400H;答:执行完该条指令后AX=0300H;答:执行完该条指令后AX=4C2AH;答:执行完该条指令后AX=3412H10.已知:DS=2000H,BX=0300H,SI=0002H,(20300H)=12H,(20301)=34H,(20 302H)=56H,(20303H)=78H,(21400H)=2AH,(21401H)=4CH,(21402H)=B7H,(2 1403H)=65H试说明下列各条指令执行完后AX寄存器的内容。

(1)MOV AX,1400H(2)MOV AX,BX(3)MOV AX,[1400H](4)MOV AX,[BX]11.根据以下要求,试写出相应的汇编语言指令。

(1)把BX寄存器和DX寄存器的内容相加,结果存入BX寄存器中。

答:指令为ADD BX,DX(2)用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。

答:指令为ADD AL,[BX+SI](3)用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX相加,并把结果存回存储器中。

答:指令为ADD [BX+0B2H],CX(4)用位移量为0524H的直接寻址方式把存储器中的一个字与立即数3C5AH相加,并把结果送回该存储单元。

答:指令为ADD [0524H],3C5AH12.已知堆栈段寄存器SS的内容是0FF0AH,堆栈指针寄存器SP的内容是0008H,先执行两条把8057H和0F7CH分别进栈的PUSH指令,再执行一条POP BX指令。

试画出堆栈区和SP的内容过程变化示意图(标出存储单元的物理地址)。

答:将8057H和0F7CH分别进栈后,SP=0004H,再执行一条POP BX指令后,SP=0006H,BX=0F7CH。

堆栈区和SP的内容过程变化示意图如下:SP=0006HSS=0FF0AHSP →SP=0004HSP=0008HSP →SP →13.字节扩展指令和字扩展指令用在什么场合?举例说明。

答:用在除法运算中,对带符号数的被除数进行扩展;例如:当被除数在AX中,除数在BX中时CDWIDIV BX14.写出执行以下计算的指令系列。

其中X、Y、Z、R、W均为存放16位带符号数单元的地址。

(1)Z ← W +(Z-X)答:指令系列如下MOV AX,ZSUB AX,XADD AX,WMOV Z,AX(2)Z ← W -(X+6)-(R-9)答:指令系列如下ADD X,6SUB R,9MOV AX,WSUB AX,XSUB AX,RMOV Z,AX(3)Z ←(W×X)/(Y+6),R ← 余数答:指令系列如下MOV AX,WIMUL XMOV BX,YADD BX,6IDIV BXMOV R,DX(4)Z ←((W-X)/ 5×Y)×2答:指令系列如下MOV AX,WSUB AX,XCDWIDIV 5IMUL YIMUL 2ADD DX,CFMOV Z,AX15.写出完成以下操作的程序段。

相关文档
最新文档