2022年指令及程序习题

上传人:沈*** 文档编号:119067934 上传时间:2022-07-13 格式:PDF 页数:8 大小:85.18KB
收藏 版权申诉 举报 下载
2022年指令及程序习题_第1页
第1页 / 共8页
2022年指令及程序习题_第2页
第2页 / 共8页
2022年指令及程序习题_第3页
第3页 / 共8页
资源描述:

《2022年指令及程序习题》由会员分享,可在线阅读,更多相关《2022年指令及程序习题(8页珍藏版)》请在装配图网上搜索。

1、习题 3 3.1 简要分析8086 的指令格式由哪些部分组成,什么是操作码?什么是操作数?寻址和寻址方式的含义是什么?8086 指令系统有哪些寻址方式?【解答】8086 的指令格式由操作码和操作数字段组成。操作码:要完成的操作。操作数:参与操作的对象。寻址:寻找操作数或操作数地址的过程。寻址方式:指令中给出的找到操作数或操作数地址采用的方式。8086 指令系统的寻址方式主要有立即数寻址、寄存器寻址、存储器寻址和I/O 端口寻址。其中,存储器寻址可进一步分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址;I/O 端口指令IN 和 OUT 使用的端口寻址方式有直接寻址和间

2、接寻址。3.2 设(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量VAL 的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1)MOV AX,21H (2)MOV AX,BX (3)MOV AX,1000H(4)MOV AX,VAL (5)MOV AX,BX (6)MOV AX,ES:BX(7)MOV AX,BP (8)MOV AX,SI (9)MOV AX,BX+10(10)MOV AX,VALBX(11)MOV AX,BXSI(12)MOV AX,VALBXS

3、I【解答】(1)MOV AX,21H 立即寻址,源操作数直接放在指令中(2)MOV AX,BX 寄存器寻址,源操作数放在寄存器BX 中(3)MOV AX,1000H 直接寻址,EA=1000H,PA=(DS)10HEA=2000H 10H 1000H=21000H(4)MOV AX,VAL 直接寻址,EA=V AL=0050H,PA=(DS)10H EA=2000H 10H0050H=20050H(5)MOV AX,BX 寄存器间接寻址,EA=(BX)=0100H,PA=(DS)10HEA=2000H 10H 0100H=20100H(6)MOV AX,ES:BX 寄存器间接寻址,EA=(BX

4、)=0100H,PA=(ES)10HEA=2100H 10H 0100H=21100H(7)MOV AX,BP 寄存器间接寻址,EA=(BP)=0010H,PA=(SS)10HEA=1500H 10H 0010H=15010H(8)MOV AX,SI 寄存器间接寻址,EA=(SI)=00A0H,PA=(DS)10HEA=2000H 10H00A0H=200A0H(9)MOV AX,BX+10 相对寄存器寻址,EA=(BX)10D=0100H 000AH=010AH,PA=(DS)10HEA=2000H 10H010AH=2010AH(10)MOV AX,VALBX 相对寄存器寻址,EA=(BX

5、)VAL=0100H 0050H=0150H,PA=(DS)10HEA=2000H 10H0150H=20150H名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -(11)MOV AX,BXSI 基址变址寻址,EA=(BX)(SI)=0100H00A0H=01A0H,PA=(DS)10HEA=2000H 10H 01A0H=201A0H(12)MOV AX,VALBXSI 相对基址变址寻址,EA=(BX)(SI)VAL=0100H 00A0H 0050H=01F0H,PA=(DS)10H EA=2000H 10H 01F0H=201F0H3.3 给定寄存器及存储单元的内容

6、为:(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=32H,(20101)=51H,(20102)=26H,(20103)=83H,(21200)=1AH,(21201)=B6H,(21202)=D1H,(21203)=29H。试说明下列各条指令执行完后,AX 寄存器中保存的内容是什么。(1)MOV AX,1200H (2)MOV AX,BX (3)MOV AX,1200H(4)MOV AX,BX (5)MOV AX,1100HBX (6)MOV AX,BXSI【解答】(1)MOV AX,1200H ;执行后,(AX)=1200H(2)MOV AX,BX ;执

7、行后,(AX)=(BX)=0100H(3)MOV AX,1200H 直接寻址,EA=VAL=1200H,PA=(DS)10HEA=2000H10H1200H=21200H,执行后,(AX)=B61AH(4)MOV AX,BX EA=(BX)=0100H,PA=(DS)10HEA=2000H 10H0100H=20100H,执行后,(AX)=5132H(5)MOV AX,1100HBX EA=(BX)1100H=0100H1100H=1200H,PA=(DS)10HEA=2000H 10H1200H=21200H,执行后,(AX)=B61AH(6)MOV AX,BXSI EA=(BX)(SI)=

8、0100H0002H=0102H,PA=(DS)10HEA=2000H 10H0102H=20102H,执行后,(AX)=29D1H3.4 分析下列指令的正误,对于错误的指令要说明原因并加以改正。(1)MOV AH,BX (2)MOV BX,SI(3)MOV AX,SIDI (4)MOV MYDATBXSI,ES:AX(5)MOV BYTE PTRBX,1000 (6)MOV BX,OFFSET MAYDATSI (7)MOV CS,AX (8)MOV DS,BP【解答】(1)MOV AH,BX 错误,寄存器类型不匹配,可改为MOV AX,BX(2)MOV BX,SI错误,两个操作数不能都为存

9、储单元,可改为MOV BX,SI或MOV BX,SI(3)MOV AX,SIDI错误,寻址方式中只能出现一个变址寄存器,可改为MOV AX,BXDI。(4)MOV MYDATBXSI,ES:AX错误,AX 签不能有段跨越前缀,去掉ES:,改为MOV MYDATBXSI,AX(5)MOV BYTE PTRBX,1000错误,1000 超出字节空间存储范围(6)MOV BX,OFFSET MAYDATSI ;正确(7)MOV CS,AX错误,MOV 指令 CS 不能做目的操作数,可改为MOV DS,AX(8)MOV DS,BP ;正确注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式

10、。3.5 设 VAR1、VAR2 为字变量,LAB 为标号,分析下列指令的错误之处并加以改正。(1)ADD VAR1,VAR2 (2)MOV AL,VAR2 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -(3)SUB AL,VAR1 (4)JMP LABSI(5)JNZ VAR1 (6)JMP NEAR LAB【解答】(1)ADD VAR1,VAR2 错误,两个操作数不能都为存储单元,可改为MOV BX,VAR2ADD VAR1,BX(2)MOV AL,VAR2 错误,数据类型不匹配,可改为MOV AX,VAR2(3)SUB AL,VAR1 错误,数据类型不匹配,可改

11、为SUB AX,VAR1(4)JMP LABSI 错误,寄存器相对寻址形式中不能用标号做位移量,可改为JMP VAR1SI(5)JNZ VAR1 错误,条件跳转指令只能进行段内短跳转,所以后面只能跟短标号。可改为JNZ LAB(6)JMP NEAR LAB 错误,缺少运算符PTR,可改为JMP NEAR PTR LAB 注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。3.6 写出能够完成下列操作的8086CPU 指令。(1)把 4629H 传送给 AX 寄存器;(2)从 AX 寄存器中减去3218H;(3)把 BUF 的偏移地址送入BX 中。【解答】(1)MOV AX,462

12、9H(2)SUB AX,3218H(3)LEA BX,BUF3.7 根据以下要求写出相应的汇编语言指令。(1)把 BX 和 DX 寄存器的内容相加,结果存入DX 寄存器中;(2)用 BX 和 SI 的基址变址寻址方式,把存储器中的一个字节与AL 内容相加,并保存在 AL 寄存器中;(3)用寄存器BX 和位移量21B5H 的变址寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器单元中;(4)用位移量2158H 的直接寻址方式把存储器中的一个字与数3160H 相加,并把结果送回该存储器中;(5)把数 25H 与(AL)相加,结果送回寄存器AL 中。【解答】(1)ADD DX,BX(2)A

13、DD AL,BXSI(3)ADD 21B5HBX,CX(4)ADD WORD PTR 2158H,3160H(5)ADD AL,25H3.8 写出将首地址为BLOCK 的字数组的第6 个字送到CX 寄存器的指令序列,要求分别使用以下几种寻址方式:(1)以 BX 的寄存器间接寻址(2)以 BX 的寄存器相对寻址(3)以 BX、SI 的基址变址寻址名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -【解答】(1)LEA BX,BLOCK+10 MOV CX,BX(2)LEA BX,BLOCK MOV CX,10BX(3)LEA BX,BLOCK MOV SI,10 MOV CX

14、,BXSI3.9 执行下列指令后,AX 寄存器中的内容是什么?TABLE DB 10,20,30,40,50 ENTRY DW 3 MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,BX AX=【解答】AX=3228H 3.10 下面是将内存一字节数据高4 位和低 4 位互换并放回原位置的程序,找出错误并改正。DATA SEGMENT DD1 DB 23H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,OFFSET DD1 MOV AL,SI MOV

15、 CL,4 RCR AL,CL MOV SI,AL MOV AH,4CH INT 21H CODE ENDS END START【解答】程序第 8 行错误:LEA SI,OFFSET DD1,应去掉 OFFSET;程序第 10 行错误:RCR AL,CL,应使用 ROR 或 ROL,改为 ROR AL,CL3.11 已知用寄存器BX 作地址指针,自 BUF 所指的内存单元开始连续存放着3 个无符号数字数据,编程序求它们的和,并将结果存放在这3 个数之后。【解答】参考程序如下:LEA BX,BUF MOV AX,BX ADD AX,BX+2 ADD AX,BX+4 MOV BX+6,AX 3.1

16、2 分析汇编语言源程序应该由哪些逻辑段组成?各段的作用是什么?语句标号和变量应具备哪3 种属性?【解答】汇编语言源程序应该由若干个逻辑段组成,可以有若干个数据段、代码段、堆名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 8 页 -栈段和附加数据段,至少要有一个代码段。各段的作用如下:(1)代码段用来存放程序和常数。(2)数据段用于数据的保存。(3)堆栈段用于保护数据,尤其在子程序调用、中断过程中进行现场信息保护。(4)附加数据段用于数据的保存。语句标号和变量应具备的3种属性:段属性、偏移属性和类型属性。3.13 执行完下列程序后,回答指定的问题。MOV AX,0 MOV BX,2

17、 MOV CX,50 LP:ADD AX,BX ADD BX,2 LOOP LP 问:(1)该程序的功能是。(2)程序执行完成后,(AX)=。【解答】(1)完成 0 到 100 间所有偶数求和的功能。(2)25503.14 编写程序,计算下面函数的值。104)100(3)0(2xxxxxxs【解答】DATA SEGMENT X DW 34 S DW?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AX,X;将 X 送到 AX 中CMP AX,0;(AX)0 吗?JL DOUB;是,转向

18、doub CMP AX,10;否,(ax)10 吗?JLE TRIB;是,转向trib SAL AX,1;否,乘以 4 SAL AX,1 JMP EXIT DOUB:SAL AX,1;乘以 2 JMP EXIT TRIB:SAL AX,1;乘以 3 ADD AX,X EXIT:MOV S,AX;保存结果MOV AH,4CH;结束INT 21H CODE ENDS END START 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 8 页 -注意,在比较的过程中使用的是针对带符号数的跳转指令,应该看作带符号数。程序中还用了移位指令代替了乘法指令。3.15 从键盘输入一系列字符,以回

19、车符结束,编程统计其中非数字字符的个数。【解答】DATA SEGMENT BLOCK DB 100 DUP(?)COUNT DB?DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV DL,0 LEA SI,BLOCK LP:MOV AH,1 INT 21H CMP AL,0DH JZ EXIT MOV SI,AL CMP AL,30H JAE NEXT CMP AL,39H JBE NEXT INC DL NEXT:INC SI JMP LP EXIT:MOV COUNT,DL MOV AH

20、,4CH INT 21H CODE ENDS END START 3.16 已知在内存中从BLOCK 单元起存放有20 个带符号字节数据,统计其中负数的个数并放入COUNT 单元。【解答】DATA SEGMENT BLOCK DB-7,1,12,-90,-70,34,-1,56,45,-12 DB-3,-4,23,0,12,11,-9,-8,67,-56 CN EQU$-BLOCK COUNT DB?DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV DL,0 LEA SI,BLOCK MO

21、V CX,CN LP:MOV AL,SI TEST AL,80H JZ NEXT INC DL NEXT:INC SI LOOP LP MOV COUNT,DL MOV AH,4CH 名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 8 页 -INT 21H CODE ENDS END START 3.17 从键盘输入一个大写英文字母,将其转换为小写字母并显示出来,要求输入其它字符时,能够有出错提示信息。【解答】DATA SEGMENT MESS DB INPUP ERROR!,0AH,0DH,$DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CO

22、DE START:MOV AX,DATA MOV DS,AX MOV AH,01H INT 21H CMP AL,A JB ERR CMP AL,Z JA ERR ADD AL,20H MOV DL,AL MOV AH,02H INT 21H JMP EXIT ERR:MOV DX,OFFSET MESS MOV AH,09H INT 21H EXIT:MOV AH,02H INT 21H CODE ENDS END START 3.18 比较宏指令与子程序,它们有何异同?它们的本质区别是什么?【解答】宏与子程序两者的相同之处在于都是用来处理在编程过程中多次使用的功能程序的方法,两者均能简化源

23、程序。两者的区别在于:(1)宏调用通过宏指令名进行,汇编时,随时调用随时展开,并不简化目标程序;子程序调用是在程序执行期间执行CALL指令,代码只在目标程序中出现一次,所以也简化了目标程序。(2)宏调用时的参数由汇编程序通过实参转换成形参的方式传递,具有很大的灵活性。宏定义中允许设置若干形式参数代替数值、指令、寄存器、各种字符串等。宏调用时可用程序所需要的实际参数来替换,使编程人员感觉非常灵活;而子程序的参数传递要麻烦得多。(3)宏调用在汇编时完成,不需要额外的时间开销;子程序调用和子程序返回都需要时间,还涉及堆栈操作。故若优先考虑速度,用宏指令;若优先考虑存储空间,用子程序。3.19 试定义

24、将一位十六进制数转换为ASCII 码的宏指令。【解答】HEXTOA MACRO AND AL,0FH CMP AL,9 JNA HEXTOA1 ADD AL,7H 名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 8 页 -HEXTOA1:ADD AL,30H ENDM 3.20 试定义一个字符串搜索宏指令,要求文本首地址和字符串首地址用形式参数。【解答】SCANC MACRO ADDRESS,CHAR1 MOV SI,ADDRESS MOV AL,SI MOV DI,CHAR1 REPNZ SCASB ENDM 名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 8 页 -

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!