ImageVerifierCode 换一换
格式:DOCX , 页数:69 ,大小:192.25KB ,
资源ID:21605021      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21605021.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言与接口技术习题答案Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编语言与接口技术习题答案Word文档格式.docx

1、操作数存放在指令规定的某个寄存器(如:对于16位操作数,寄存器可以是AX,BX,CX,DX,SI,DL,SP或BP;而对8位操作数,寄存器可以是AH,AL,BH,BL,CH,CL,DH或DL)中。MOV AL,BHMOV AX,CXMOV EAX,EBP(3) 存储器寻址操作数存放在存储器中,在寻址时要计算存储单元的有效地址,有效地址可以由以下四种成分组成:位移量:是存放在指令中的一个8位、16位或32位的数;基址:其值存放在基址寄存器中。 BX、BP、任何32位通用寄存器都可以作为基址寄存器使用;变址:其值存放在变址寄存器中。SI、DI 、除ESP外的32位通用寄存器都可以作为基址寄存器使用

2、;比例因子:是80386及后继机型中新增寻址方式中的术语。其值可为1、2、4、8。根据计算有效地址EA方法不同,存储器寻址又分为:1)直接寻址(direct addressing)操作数的有效地址是指令的一部分,它与操作码一起存放在代码段中,默认操作数在数据段(DS)中,如果操作数定义在其它段中,则应在指令中指定段超越前缀。EA=立即数MOV AX,200H2)寄存器间接寻址(register indirect addressing)操作数的有效地EA存放在基址寄存器(BX或BP)或变址寄存器(DI或SI)中 。计算物理地址的缺省段仍然是SI、DI和BX为DS,BP为SSEA=寄存器中的值MO

3、V AX,BX MOV AX,BP MOV AX,SI MOV AX,DI3)寄存器相对寻址(register relative addressing)由指定的寄存器内容,加上指令中给出的8位或16位偏移量(当然要由一个段寄存器作为地址基准)作为操作数的偏移地址。EA 基址或变址寄存器(BX、BP、DI、SI)8位或16位的位移量寄存器相对寻址常用于存取表格或一维数组中的元素把表格的起始地址作为位移量,元素的下标值放在间址寄存器中(或反之)。MOV AX,BX+2MOV AX,BP+1MOV AX,SI-1MOV AX,DI-2MOV AX,BX+2000HMOV AX,BP+1000HMOV

4、 AX,SI-1000HMOV AX,DI-2000H4)基址变址寻址(base-plus-index addressing)有效地址由基址寄存器(BP或BX)的内容加上变址寄存器(DI或SI)的内容形成。如基址寄存器为BX时,与DS形成的物理地址指向数据段;如基址寄存器为BP时,与SS形成的物理地址指向堆栈段。EA基址寄存器的内容变址寄存器的内容MOV AX,BX+SI MOV AX,BX+DI MOV AX,BP+SI MOV AX,BP+DI一条指令中同时使用基址寄存器或变址寄存器是错误的。MOV CL, BX+BP 或 MOV AX, SI+DI 均为非法指令。5)基址变址相对寻址(b

5、ase-plus-index relative addressing)有效地址由基址寄存器(BP或BX)、变址寄存器(DI或SI)及相对偏移量形成。缺省段的使用仍然是DS与BX组合,SS与BP组合。EA基址寄存器的内容变址寄存器的内容MOV AX,BX+SI+2 MOV AX,BX+DI+1 MOV AX,BP+SI-1 MOV AX,BP+DI-2 MOV AX,BX+SI+2000HMOV AX,BX+DI+1000H MOV AX,BP+SI-1000HMOV AX,BP+DI-2000H6)比例变址寻址方式有效地址为变址寄存器的内容乘以指令中指定的比例因子再加上位移量之和。MOV EA

6、X,ESI4+100H7)基址比例变址寻址方式有效地址为变址寄存器的内容乘以指令中指定的比例因子再加上基址寄存器的内容之和。4+EBX8)相对基址比例变址寻址方式有效地址为变址寄存器的内容乘以指令中指定的比例因子、加上基址寄存器的内容,再加上位移量之和。4+EBX+8 (4) 隐含寻址 指令操作数是隐含的,在指令中未显式地指明。 例:MUL BL 指令隐含了被乘数AL及乘积AX。 类似的指令还有:DIV、CBW、MOVS等。(5)I/O端口寻址直接端口寻址 端口地址用8位立即数(0255)表示 例:IN AL,21H;从I/O端口地址为21H的端口中读取数据送到AL中。间接端口寻址 I/O端口

7、地址事先存放在规定的DX寄存器中(065535)MOV DX,0FF03H OUT DX,AL; 将AL中的内容输出到地址由DX ; 内容所指定的端口中2指出下列指令的错误 (1) mov cx,dL (2) mov ip,ax (3) mov es,1234h (4) mov es,ds (5) mov al,300 (6) mov sp,ax (7) mov ax,bx+di (8) mov 20h,ah(1)字长不同(2)不能给IP赋值(3)立即数不能直接赋给段寄存器(4)给段寄存器赋值一定需要累加器(5)立即数300超过8位不能赋给8位寄存器AL(6)SP不能作为间址寄存器寻址(7)

8、两个寄存器不能相加(8)立即数不能作为目标操作数本题主要考查在应用通用传送指令时,需要注意以下几项(以MOV指令为例):(1)传送指令可传送8位数据,也可传送16位数据,具体取决于指令中涉及的寄存器是8位还是16位,也取决于立即数的形式。例如:MOV AX,35AH;传送DS段中偏移地址为35AH的字单元内容至AX MOV BL,35AH传送DS段中偏移地址为35AH的字节单元内容至BLMOV BP,WORD PTR 18H ;传送16位数据0018H至SS段中两个单元MOV BP,BYTE PTR 37H ;传送8位数据37H至SS段中一个单元(2)传送指令中总是既含源操作数,又含目的操作数

9、,两者之中至少有一个是用寄器来指出的,这可减少指令长度。因此,一个立即数不能直接送直接寻址的内存单元。交换指令(XCHG)两个操作数都不能是立即数。 MOV WORD PTR 1000H,32A8H错误MOV WORD PTR BX,32A8H正确(3)传送指令不能在两个内存单元之间直接传送数据。 MOV 2000H,35AH 错误 MOV WORD PTR BX,8729H 错误(4)在传送指令中,寄存器既可以作为源操作数,也可以作为目的操作数,但CS寄存器不能作为目的操作数,换句话说,这个寄存器的值不能随意修改。而IP寄存器既不能作源操作数,也不能作目的操作数。 MOV CS,35AH M

10、OV CS,AX MOV AX,IP MOV IP,WORD PTRBX(5)用BX、SI、DI来间接寻址时,默认的段寄存器为DS,而用BP来间接寻址时,默认的段寄存器为SS。例如:对于MOV WORD PTRBP,1000和MOV WORD PTRBX,2000, 设DS=3000H,SS=4000H,BX=5000H,BP=6000H,则前一条指令将立即数1000送到物理地址为46000H和46001H的两单元中,后一条指令将立即数2000送到物理地址为35000H和35001H的两单元中。(6)8086系统规定,凡是遇到给SS寄存器赋值的传送指令时,系统会自动禁止外部中断,等到本条指令和

11、下条指令执行后,又自动恢复对SS寄存器赋值前的中断开放状态。这样做是为了允许程序员连续用两条指令分别对SS和SP寄存器赋值,同时又防止堆栈空间变动过程中出现中断。了解这点后,就应该注意在修改SS和SP的指令之间不要插入其他指令。例如,下述写法是错误的: MOV SS,AX MOV DL,38H MOV AH,2 INT 21H MOV SP,BX(7)除了一些直接影响FLAGS的指令(如POPF)外,一般传送指令不改变标志寄存器的内容。(8)立即数不能直接送段寄存器DS、ES以及SS。 例如: MOV DS,875BH MOV AX,875BH MOV DS,AX正确 MOV WORD PTR

12、BX,32A8H MOV ES,BX 正确 实际上,上述几点中有些要求适于其它通用传送型指令,甚至也适合其他种类的指令,读者可在后面的学习中不断去总结和积累。3已知数字09对应的格雷码依次为:18H,34H,05H,06H,09H,0AH,0CH,11H,12H,14H,它存在于以table为首地址(设为200H)的连续区域中。对如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。 Lea bx,table mov aL,8 xlat Lea bx,table ; 得到表首地址,放在寄存器BX中 mov aL,8 ;立即数8赋值给AL,即AL中存放的是相对于表首的偏移地址xlat ;

13、利用查表转换指令,实质是查找8的格雷码结果是(AL)=12H程序段的功能为:把表首地址即200H赋给BX 。 分析:本题主要考查查表转换指令(XLAT)的应用。 指令功能:ALDS:BX+AL。用途:用于查表(或对一维数组操作),表首地址的偏移地址在BX中,表长度可达256字节。把BX的值作为内存字节数组首地址、下标为AL的数组元素的值传送给AL。有两个隐含操作数BX和AL。4什么是堆栈?它的工作原则是什么?它的基本操作有哪两个?对应哪两种指令?堆栈是一段具有特殊存取规则的数据区,工作原则是先进后出(FILO),它有两种基本的操作即进栈和出栈,对应的指令伪PUSH和POP。堆栈的应用很多,应用

14、8086/8088系统堆栈时我们要注意下面几点:堆栈是向下生长的;工作原则是先进后出(FILO);有两种操作,即进栈和出栈,只能进行字操作,且是对准字;对应的逻辑地址是SS:SP。6给出下列各条指令执行后AL的值,以及CF、ZF、SF、OF和PF的状态。 mov aL,89h add aL,aL add al,9dh cmp aL,0bch sub aL,aL dec aL inc aLMOV AL, 89H ;(AL)=89H 各状态标志位不变ADD AL, AL ;(AL)=12H CF=1 ZF=0 SF=0 OF=1 PF=1ADD AL, 9DH ;(AL)=AFH CF=0 ZF=

15、0 SF=1 OF=0 PF=1CMP AL, 0BCH ;(AL)=AFH CF=1 ZF=0 SF=0 OF=0 PF=0SUB AL, AL ;(AL)=0H CF=0 ZF=1 SF=0 OF=0 PF=1DEC AL ;(AL)=FFH CF=0(不影响CF) ZF=0 SF=0 OF=1 PF=1INC AL ;(AL)=0H CF=0(不影响CF) ZF=1 SF=0 OF=1 PF=1本题主要考查指令对标志位的影响,总结如下。(1)数据传送指令除了几个专门给标志寄存器赋值的指令(如:POPF,SAHF等)外,对标志位都没有影响。(2)算术运算指令中除了DEC和INC不影响CF外

16、,其他算术指令对6个状态标志位都有影响。(3)逻辑运算指令中,NOT不影响标志位,其它四种指令将使CF=OF=0,AF无定义,而SF、ZF和PF则根据运算结果而定。以上详细情况请参考教材。12编写程序段完成如下要求: (1)用位操作指令实现AL(无符号数)乘以10。 (2)用逻辑运算指令实现数字09的ASCII码与非压缩BCD码的互相转换。 (3)把DXAX中的双字右移4位。(1)参考答案:MOV BL, AL MOV CL, 3SHL AL, CL ;AL8 SHL BL, 1 ;2 ADD AL, BL ;8+ AL2= AL10本题主要考察用移位指令实现乘除法1)算术移位(SAL/SAR

17、)把操作数看做有符号数;逻辑移位(SHL/SHR)把操作数看做无符号数。2)移位位数放在CL寄存器中,如果只移1位,也可以直接写在指令中。 MOV CL,4 SHR AL,CL ;AL中的内容右移4位3)影响C,P,S,Z,O标志。4)结果未溢出时: 左移1位操作数 右移1位操作数/25) 用移位操作代替乘除法可提高运算速度。在编写汇编程序的时候,应该注意程序的执行效率,使程序得到最大程度的优化,特别是在处理海量数据的时候,这就变得非常必要。移位指令作为系统指令的一部分,可以在一定程度上帮助我们实现复杂的数值运算,而不会增加系统负担,这是非常有意义的。计算x*10。采用乘法指令: MOV BL

18、,10 MUL BL 共需70-77个T周期。采用移位和加法指令: SAL AL,1 ; 2T MOV AH,AL ; 2T ADD AL,AH ; 3T 只需11个T周期,仅相当于乘法指令的1/7。(2)参考答案:ASCII码转换成非压缩型BCD码的指令是: AND AL, 0FH 非压缩型BCD转换成ASCII码的指令是: OR AL, 30H根据ASCII码与BCD码的特点:1)09的ASCII码为30H39H;2)09非压缩型BCD码为0H9H。又根据或(OR)指令和与(AND)指令的特点:1)任何数和1相或(OR)结果都得1;2)任何数和0相与(AND)结果都得0。(3)参考答案:M

19、OV BX, DX AND BX, 0FH MOV CL, 12 SHL BX, CL MOV CL, 4 SHR DX, CL SHR AX, CL OR AX, BX实现32位数据逻辑右移,要注意高字的低位移到低字的高位。14已知数据段500H600H处存放了一个字符串,说明下列程序段执行后的结果。 mov si,600h mov di,601h mov ax,ds Mov es,ax mov cx,256 std rep movsb把500H600H处的256个字节的字符串顺序存放到偏移地址601H的地方。本题和15题都在考查串操作指令的应用。串操作类指令可以用来实现内存区域的数据串操作

20、。这些数据串可以是字节串,也可以是字串。(1)重复指令前缀串操作类指令可以与重复指令前缀配合使用。从而可以使操作得以重复进行,及时停止。重复指令前缀的几种形式见表3-1所示。表3-1重复前缀汇编格式执行过程影响指令REP(1)若(CX)0,则退出;(2)CX=CX-1;(3)执行后续指令;(4)重复(1)-(3)MOVS,STOS,LODSREPE/REPZ(1)若(CX)0或ZF=0,则退出;CMPS,SCASREPNE/REPNZ(1)若(CX)0或ZF=1,则退出;(2)串操作指令串操作指令共有五种,具体见表3-2。对串指令要注意以下几个问题:各指令所使用的默认寄存器是:SI(源串地址)

21、,DI(目的地址),CX(字串长度),AL(存取或搜索的默认值)。源串在数据段,目的串在附加段。方向标志与地址指针的修改。DF1,则修改地址指针时用减法;DF=0时,则修改地址指针时用加法。MOVS、STOS、LODS指令不影响标志位。表3-2 串操作指令功能指令格式执行操作串传送MOVS DST,SRCMOVSBMOVSW由操作数说明是字节或字操作;其余同MOVSB或MOVSW(ES:DI)(DS:SI);SI=SI1,DI=DI1;2,DI=DI2;串比较CMPS DST,SRCCMPSBCMPSW其余同CMPSB或CMPSWDI)(DS:串搜索SCAS DSTSCASBSCASW其余同S

22、CASB或SCASWAL(ES:DI);DI=DIAX(ES:DI);存串STOS DSTSTOSBSTOSW其余同STOSB或STOSWAL(ES:AX(ES:取串LODS SRCLODSBLODSW其余同LODSB或LODSW(DS:SI)AL;SI)AX;17控制转移类指令中有哪几种寻址方式?控制转移类指令中的寻址方式主要有:(1)段内直接寻址; (2)段内间接寻址;(3)段间直接寻址;(4)段间间接寻址。题17题22都是在考查与转移地址有关的寻址方式。与数据有关的寻址方式最终确定的是一个数据的地址,而与转移地址有关的寻址方式最终确定一条指令的地址。 有三种表示转移距离的操作符:(1)S

23、HORT转移,称为短转移,位移量用一个字节(8位)来表示。(2) NEAR转移,称为近转移,位移量用16位表示,因为程序控制仍然在当前代码段,所以只修改IP的值,CS的值不变。(3) FAR转移,称为远转移,因为程序控制超出了当前代码段,所以CS和IP都必须修改为新的值。 几种转移方式可以描述为:(1)段内直接寻址 这种寻址方式在指令中直接指出转向地址,如: JMP SHORT NEXT JMP NEAR PTR AGAIN 其中,NEXT和AGAIN均为转向的符号地址。在机器指令中,操作码之后给出的是相对于当前IP值的位移量(转移距离),所以,转向的有效地址是当前IP值与指令中给出的位移量(

24、8位或16位)之和。 注:这种寻址方式适用于条件转移及无条件转移指令,当用于条件转移指令时,位移量只允许8位。 例如: 已知(DS)= 2000H,(BX)= 1256H,(SI)= 528FH, 位移量 = 20A1H,(232F7H)= 3280H,(264E5H)= 2450H。则执行 JMP BX指令后 (IP)= 1256H执行JMP BXSI指令后 (IP)=(16d (DS)+(BX)+(SI) =(20000H + 1256H + 528FH) =(264E5H) = 2450H(2)段内间接寻址 这种寻址方式在指令中用数据寻址方式(除立即寻址方式外)间接地指出转向地址,如:JMP BX JMP NEAR PTR BX JMP TABLESI

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1