版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1) 在变量 varl 中保存 6个字变量:4512H, 4512,- 1, 100/3 , 10H, 65530;(2) 在变量var2中保存字符串:BYTE , word , WORD;(3) 在缓冲区buf1中留出100个字节的存储空间;(4) 在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程 重复7次;(5) 在变量var3中保存缓冲区buf1的长度;(6) 在变量pointer中保存变量var1和缓冲区buf1的偏移地址。解:var1DW4512H,4512,-1,100/3,10H,6
2、5530var2DBBYTE ,word ,WORD buf1DB100 DUP (?)buf2DB7 DUP ( 5 DUP ( 55H ) ,10 DUP ( 240)var3DBLENGTH buf1poi nterDWvar1,buf1(或者 pointer DW OFFSET var1, OFFSET buf1)2.设变量var1的逻辑地址为0100: 0000, 画出下列语句定义的变量的存储分配图:var1 DB12,-12, 20/6 , 4 DUP (0, 55H)var2 DB Assemblevar3 DWAB,, cd , Evar4 DW var2var5 DDvar2
3、解:解:(1) MOV SI,100正确。源:立即数寻址,目的:寄存器寻址(2) MOV BX,V AR1SI正确。源:寄存器相对寻址,目的:寄存器寻址(3) MOV AX,BX正确。源:寄存器间接寻址,目的:寄存器寻址(4) MOV AL,DX错误。寄存器间接寻址时,DX,AX, CX不能作地址寄存器(5) MOV BP,AL错误。操作数类型不一致CilOO;OOOOHCCHF4?03HOOH亟55HOOH55HOOH55Hvaxt41H73H6DH62H6CH65H42H41H63H45HOOOBH0013Hvar3O019KOO1EHvar4Tar53.指令正误判断,对正确指令写出源和目
4、的操作数的寻址方式,对错误指令指出原因(设VAR1, VAR2为字变量 丄1为标号):(I) MOV SI, 100(3)MOV AX, BX(5) MOV BP, AL(7)MOV CS, AX(9)MOV BXSI, 1(II) ADD AX, LENGTH VAR1(13) SUB DI, 78H(15) PUSH 100H(17) XCHG AX, ES(19) JMP L1+5(21) SHL BL, 2(23) MUL CX(25) ADC CS:0100, AH(2) MOV BX VAR1SI(4) MOV AL, DX(6) MOV VAR1, VAR2(8) MOV DS,
5、 0100H(10) MOV AX, VAR1+VAR2(12) OR BL, TYPE VAR2(14) MOVS VAR1, VAR2(16) POP CS(18) MOV DS, CS(20) DIV AX, 10(22) MOV AL, 15+23(24) XCHG CL, SI(26) SBB VARJ 5,154(6) MOV VAR1,VAR2错误。两存储单兀之间不能用MOV指令传送数据(2) MOVAX , VAR2 把变量VAR2对应地址单元中的一个字送入AX(1)MOV AXVAR1与MOV AX,OFFSET VAR1(2)MOV AXVAR2与LEA AX,VAR2(3
6、)MOV ALLENGTHVAR1与 MOV AL,SIZE VAR1(4)MOV ALES: DICMP AL, SI与 CMPSB(5)SHR AL,1与SAR AL,1(6)SHR AL,1与ROR AL,1(7)ROL BX,1与RCL BX,11)MOVAX,VAR1把变量VAR1对应地址单元中的一个字送入4.说明下列指令对的区别:解:(AXMOVAX,OFFSET VAR1 把VAR1的有效地址的偏移地址送入AX(8) MOV DS,0100H错误。目的操作数为段寄存器时,源操作数不能为立即数错误。指令类型不定。(10)MOV AX,V AR1+VAR2错误。MOV指令中不能完成加
7、法运算(11)ADD AX,L ENGTH V AR1正确。源:立即数寻址。目的:寄存器寻址(12)OR BL,TYPE V AR2正确。源:立即数寻址。目的:寄存器寻址错误。指令类型不定(14)MOVS V AR1,VAR2正确。(15)PUSH100H错误。(16)POPCS(17)XCHGAX,ES错误。(18)MOVDS,CS错误。(19)JMPL1+5正确。(13)SUB DI,78H(20)DIVAX,10目的、源均为隐含寻址。操作数仅指出操作数类型将常数压入堆栈,要通过寄存器来实现目的操作数不能为 CSXCHG指令的操作数不能是段寄存器MOV指令不能从段寄存器到段寄存器段内直接转
8、移错误。指令格式错误。(21)SHLBL,错误。移位指令的移位数为1或者CL(22)MOVAL,15+23正确。源:立即数寻址,目的:寄存器。编译时就处理为38(23)MULCX正确。源:寄存器寻址,目的:寄存器寻址(24)XCHGCL,SI正确。源:寄存器间接寻址,目的:寄存器寻址(25)ADCCS:0100,AH正确。源:寄存器寻址,目的:直接寻址(数据在代码段中)(26)SBBVAR1-5,154正确。源:立即数寻址,目的:直接寻址。LEA AX,VAR2 把VAR2的有效地址的偏移地址送入AX(3)MOV AL,LENGTH V AR1 把变量 VAR1的长度送入 ALMOV AL,S
9、IZE VAR1 把变量 VAR1的大小送入 AL(4)MOV AL,ES: DICMP AL , SI把以ES为段地址,DI为偏移地址的一个字节送入 AL,并与以SI内容为偏移地址的一个字节作比较,改变标志寄存器内容。(相当于作ES:(。1)与(DS: ( SI)内容比较)CMPSB对字符串中的一字节比较。寻址方式隐含。源串的地址由DS:SI指定,目的串的地址由 ES:DI指定。(相当于作DS:(SI)与ES:( DI)内容比较)(5) SHR AL,1AL逻辑右移1位,最高位移入 0,最低位移入CF。SAR AL,1AL算术右移1位,以最高位内容移入,最低位移入CF,其余各位右移一位。(6
10、) SHR AL,1AL逻辑右移1位,最高位移入 0,最低位移入CF。ROR AL,1AL的各位构成环形移位,右移一位,最低位内容同时移入到CF和最高位。(7) ROL BX,1BX各位构成环形移位,左移一位,最高位内容同时移入到CF和最低位。RCL BX,1BX和CF构成环形移位,左移一位,CF内容移入到最低位,最高位移入CF。5.写出下列转移指令的寻址方式(设VAR1为字型变量,DVAR1为双字型变量):(1)JMP L1(2)JMP NEAR L1(3)JNZ L1(4)JMPBX(5)JG L1(6)JMPVAR1SI(7)JMP FAR PTR L1(8)JMPDVAR1L1为标号,
11、解:(1)JMP L1段内直接寻址(2)JMP NEAR PTR L1 段内直接寻址(3)JNZL1段内直接寻址(4)JMP BX段内间接寻址(5)JG L1段内直接寻址(6)JMP VAR1SI段内间接寻址(7) JMP FAR PTR L1段间直接寻址(8) JMP DVAR1 段间间接寻址6. 设(DS = 2000H, (BX) = 0100H, ( SI) = 0002H, (20100) = 3412H, (20102) = 7856H,(21200 )= 4C2AH ( 21202)= 65B7H,求下列指令执行后 AX寄存器的内容:(1) MOV AX 1200H;(2)MOV
12、AX BX(3) MOV AX, 1200H;(4) MOV AX, BX;(5)MOV AX,1100BX; (6) MOV AX, BXSI;解:(1)错误。N1-N2=2090255(2)正确(3)正确(7) MOV AX,1100BXSI解:(1) 1200H(2)0100H(3) 4C2AH(4) 3412H( 5) 4C2AH7.(6) 7856H(7)65B7H执行下列指令后,DX寄存器中的内容是多少?TABLEDW25,36, 1, 16, 10000, 13PYLDWMOVBX,OFFSET TABLEADDBX,PYLMOVDXBX解:DX = 10FFH由-16(FFF0
13、H )的高8位和10000 (2710H)的低8位构成8.如果堆栈的起始地址为2200: 0000,栈底为 0100H, ( SF) = 00A8H,求(1)栈顶地址;SS的内容;(3)再存入数据5678H, 3AF2H后,SF 的内容。解:栈顶地址00A8H , SS = 2200H, 再存入 2 个字后,SF = 00A4H9. 设已用伪指令 EQU定义了 4个标识符:N1EQU2100N2EQU10N3EQU20000N4EQU25000F列指令是否正确?并说明原因。(1) ADD AL, N1 N2;(2)MOV AXN3+ N4;(3) SUB BX, N4 N3;(4)SUB AH
14、N4- N3- N1;(5) ADD AL, N2;(6)MOV AHN2*N210. 按下列要求写出指令:(1)将AX寄存器的低4位清零,其余位不变;(2)将BX寄存器的低4位置1,其余位不变;(3)将AL寄存器的低4位保持不变,高4位取反;(4) 测试BX中的位1和位2,当这两位同时为 0时将AL置OFFH否则AL清零;(5) 测试BX中的位1和位2,当这两位有一位为 0时将AL置0FFH否则AL清零;(6) 将AL中保存的字母 ASCII码变换成相应的大写字母的ASCII码;(7) 将AL中保存的字母 ASCII码变换成相应的小写字母的ASCII码;(8)将AX中的各位取反;(9)将DX
15、中的低7位取反,高9位不变;(10)将CX中的低8位与高8位互换。解:(1) AND AX,0FFF0H(2)OR BX,000FH(3)XOR AL,0F0H(4)TESTBX,06H(5)MOVAX,BXJZZEROANDAX,06HMOVAL, 00HXORAX,06HJMPOVERJZOVERZERO :MOVAL,0FFHMOVAL,0FFHOVER:OVER:(6) AND AL,5FH或者:CMPAL,61HJLOVER(无需变换或不是字母)CMPAL,7AHJGOVER(不是字母)AND AL,5FH或 SUB AL,20HOVER :(7) OR AL, 20H或者:CMPA
16、L , 41HJLOVER(不是字母)CMPAL , 5AHJGOVER(无需变换或不:是字母)OR AL,20H或ADD AL ,20HOVER :(8) XOR AX , OFFFFH 或者 NOT AX(9) XOR DX , 007FH(10) XCHG CH, CL11. 写出完成下述功能的程序段:(1) 传送40H到AL寄存器;(2) 将AL的内容乘以2 ;(3) 传送16H到AH寄存器;(4) AL的内容加上AH的内容。计算最后结果(AL)=?解:(1)MOVAL,40H(2)SHLAL,1(3)MOVAH,16H(4)ADDAL , AHAL=96H12. 写出完成下述功能的程
17、序段:(1) 从缓冲区BUF的0004偏移地址处传送一个字到 AX寄存器;(2) 将AX寄存器的内容右移 2位;(3) 将AX内容与BUF的0006偏移地址处的一个字相乘;(4) 相乘结果存入 BUF的0020H偏移地址处(低位在前)。解:(1) LEA SI, BUFMOV AX, SI+4(2) SHRAX,1SHRAX,1(3) MULWORD PTR 6SI(4) MOV20HSI,AXMOV22HSI,DX13. 设(BX)= 11001011B,变量VAR的内容为00110010B,求下列指令单独执行后 BX的内(2) 0002H(3) 00FBH(4) 003BH(5) 000B
18、H(6) 00CBH设(DX) =14.(1)10111011B,(CL)= 3, (CF求下列指令单独执行后DX的内容:SHR DX(2)SAR DX CL;(3)SHL DX,CL;(4)SHL DX,(5)ROR DX CL;(6)ROL DL,CL;(7)SAL DH,(8)RCL DX CL;(9)RCR DL,容:(1)XOR BXVAR(2)AND BXVAR(3)OR BXVAR(4)XOR BX11110000B;(5)AND BX00001111B;(6)TEST BX,1解:( 1)00F9H(1)SHRDX,1DX逻辑右移10000 0000 0101 1101B=00
19、5DH(2)SAR DX ,CLDX算术右移30000 0000 0001 0111B =0017H(3)SHL DX ,CLDX逻辑左移30000 0101 1101 1000B =05D8H(4)SHL DX ,1DX逻辑左移10000 0001 0111 0110B =0176H(5)RORDX,CLDX循环右移30110 0000 0001 0111B=6017H(6)ROLDL,CLDL循环左移30000 0000 1101 1101B=00DDH(7)SAL DH ,1DH算术左移10000 0000 1011 1011B =00BBHCF=1CL=3DX= 0000 0000 1
20、011 1011B带进位循环左移 3(8)RCL DXCLDX0000 0101 1101 1100B解:05DCH(9) RCR DL, 1 DL带进位循环右移 10000 0000 1101 1101B00DDH15. 选择题(各小题只有一个正确答案)(1) 执行下列三条指令后:MOV SP 1000HPUSH AXCALL BXa.(SP)= 1000H;b.(SP)= 0FFEHc.(SP)= 1004H;d.(SP)= 0FFCH(2) 要检查寄存器 AL中的内容是否与 AH相同,应使用的指令为:a. AND AL, AHb. OR AL, AHc. XOR AL, AH d. SB
21、B AL, AH(3) 指令JMP NEAR PTR L1与CALL L1 ( L1为标号)的区别在于:a.寻址方式不同;b.是否保存IP的内容;c.目的地址不同;d.对标志位的影响不同。SP=0FFCH解:(1) D PUSHU AX 则 AX 入栈,SP=0FFEH ; CALL BX 贝U IP 入栈,(2) C 异或,若相同,则 AL=0 , ZF = 1。(3) B16. 寄存器DX AX组成32位数,DX为高位,编写程序段实现:(1) DX AX右移3位,并将移出的低 3位保存在CL中;(2) DX AX左移3位,并将移出的高 3位保存在CL中;解:(1)移出的3位应该按时序移入
22、CL中。XOR CL,CLMOV BL,3L1:SHRDX , 1RCRAX , 1RCLCL , 1DECBLJNZ L1(2)移出的3位应该按时序移入 CL中。XOR CL,CLMOV BL,3L1:SHL AX , 1RCR DX , 1RCR CL, 1DEC BLJNZ L117. 编写程序段实现将 BL中的每一位重复 4次,构成32位的双字DX : AX,例如当BL=01011101B 时,则得到的(DX )= 0F0FH , (AX )= OFFOFH。解:算术右移时,移入的值就是最高位本身,这样可以使位内容重复,利用这一点可以实现题目的要求。XORDX,DXXORAX,AXMO
23、VCX,4L1:SHRBL,1RCRAX,1SARAX,1SARAX,1SARAX,1LOOPL1MOVCX,4L2:SHRBL,1RCRDX,1SARDX,1SARDX,1SARDX,1LOOPL218. 字变量VAR1中保存有小于38250的16位无符号数,编写程序段实现VAR1十150,并进行四舍五入操作,将商保存在字节变量VAR2中。解:根据题意,38250 - 150 = 255,因此商不会超过 255,可以用一个字节表示。a+ b的四舍五入操作可以通过判断除后余数实现:余数大于等于除数的一半, 则商加1;否则不用加1。但这种方法用汇编语言编程实现时比较复杂,这里介绍另外一种方法:设
24、a十b的四舍五入后的结果为c,用表示取整数操作,则LEA SI,BUFFER这种方法是在除法操作之前,在被除数上加上除数的一半,这样除法操作后得到的值就是考 虑了四舍五入的商。VAR1 DW 12345VAR2 DB ?DATAADB 150MOVAX,V AR1XORBX,BXMOVBL,DATAASHRBX,1ADDAX,BXDIVDATAAMOVVAR2,AL19.有一组无符号的16位数据保存在 BUFFER按下式进行滤波处理:中,前两个字节存放数据的个数,编程实现1y(k)3 x(k) x(k 1) x(k 2) k 2y(k) x(k)k 2解:滤波结果保存在 FILT中。BUFFE
25、R DW 0CHDW 33H, 18H, 1BH, 06H, 33H, 08HDW 3H, 6H, 0FH, 51H, 05H, 0CHFILT DW 100H DUP ( ?)LEA DI,FILTMOV CX,SIMOV DI,CXADD SI,2ADD DI,2XOR DX,DXMOV AX,SIMOV DI,AXMOV BX,2SIMOV 2DI,BXADD SI,4ADD DI,4DEC CXDEC CXADD AX,BXADC DX,0MOV BX,3L1:ADD AX,SIADC DX,0PUSH DXPUSH AXDIV BXMOV DI,AXPOP AXPOP DXSUB AX, SI-4SUBB DX,0ADD DI,2LOOP L1ADD SI,220. 在由字符串构成的缓冲区BUFFER中,前2个字节存放字符个数,后续每个字节存放一个字符的ASCII码。编写程序实现将字符串2004替换
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年临床执业医师通关题库附完整答案详解【名师系列】
- 2024-2025学年公务员考试《常识》练习题附完整答案详解(名校卷)
- 2024-2025学年度计算机四级通关考试题库附参考答案详解【B卷】
- 2024-2025学年度环境影响评价工程师之环境影响评价相关法律法规能力提升B卷题库往年题考附答案详解
- 2024-2025学年冶金工业技能鉴定考前冲刺试卷(轻巧夺冠)附答案详解
- 2024-2025学年度四川文化传媒职业学院单招《语文》试题预测试卷(轻巧夺冠)附答案详解
- 2024-2025学年度反射疗法师大赛理论经典例题带答案详解(基础题)
- 2024-2025学年度电梯考试试题附答案详解(黄金题型)
- 2024-2025学年度粮油食品检验人员全真模拟模拟题附答案详解【模拟题】
- 2024-2025学年度注册核安全工程师考前冲刺练习学生专用附答案详解
- 2026广东茂名市公安局茂南分局招聘警务辅助人员20人考试参考题库及答案解析
- AI在人力资源招聘中的应用【课件文档】
- 2026年郑州市检验检测有限公司公开招聘19人笔试模拟试题及答案解析
- 妇科恶性肿瘤研究进展2026
- 以梦为马 不负韶华2026新年高中开学第一课
- 2025北京市东城区卫生健康委所属事业单位第一次公开招聘396人笔试历年典型考题及考点剖析附带答案详解试卷2套
- 2026年春季第二学期学校德育主题活动工作安排表
- 市域产教联合体绩效考核体系制度
- 2026年1月浙江省高考(首考)化学试题(含标准答案)
- 深度解析(2026)《JTT 761-2022航标灯通 用技术条件》
- 2026届新高考语文三轮冲刺复习:名句名篇默写汇编(课前每日五分钟一练)
评论
0/150
提交评论