版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、WORD格式.整理版第三章80x86指令系统3-1 指令由操作码字段和操作数字段组成。8086的指令长度在16字节范围。3-2 分别指出下列指令中源操作数和目的操作数的寻址方式。若是存储器寻址,使用表达式表示出EA=? PA=?(1) MOV SI, 2100H(2) MOV CX, DISPBX (3) MOV SI, AX(4) ADC ZX, BXSI (5) AND AX, DX (6) MOV AX, BX+10H(7) MOV AX, ES:BX (8)MOV AX, BX+SI+20H (9) MOV BP, CX(10) PUSH DS解:源操作数寻址目的操作数寻址EAPA1)
2、 MOV SI, 2100H立即数寻址寄存器(2) MOV CX, DISPBX寄存器相对寻址寄存器BX+SISP(DS)*16+(BX+DISP)(3) MOV SI, AX寄存器寻址寄存器间接SI(DS)*16+(SI)(4) ADC ZX, BXSI基址变址寻址寄存器BX+SI(DS)*16+(BX)+(SI)(5) AND AX, DX寄存器寻址寄存器(6) MOV AX, BX+10H寄存器相对寻址寄存器BX+DISP(DS)*16+(BX)+10H(7) MOV AX, ES:BX带段超越寄存器寻址寄存器BX(ES)*16+(BX)(8)MOV AX, BX+SI+20H相对基址变
3、址寻址寄存器BX+SI+20H(DS)*16+(BX)+(SI)+20H(9) MOV BP, CX寄存器寻址寄存器间接BP(SS)*16+(BP)(10) PUSH DS固定寻址寄存器SP(SS)*16+(SP)3-3 已知8086中一些寄存器的内容和一些存储器单元的内容如图3-1所示,试指出下列各条指令执行后,AX中的内容。(1) MOV AX, 2010H(2) MOV AX, BX (3) MOV AX, 1200H(4) MOV AX, BX (5) MOV AX, 1100HBX(6) MOV AX, BXSI(7) MOV AX, 1100HBX+SI (8) MOVLEA AX
4、, SI解:(1)(AX) =2010H( 2)(AX)=0100H(3)( AX =4C2AH ( 4)( AX =3412H(5) ( AX) =4C2AH ( 6)( AX) =7856H(7)( AX) =65B7H( 8)( AX =0002HM30100H12H30101H34H30102H56H30103H78H31200H2AH31201H4CH31202HB7H31203H65HCPUBX0100HSI0002HDS3000H图3-13-4 已知(AX)=2040H,(DX)=380H,端口(PORT)=(80H)=1FH, (PORT+1)=45H执行下列指令后,指出结果等
5、于多少?解:(1) OUT DX, AL(2) OUT DX, AX IN AL, PORTIN AX, 80H(0380H)=40H(380H)=40H (381h)=20H(AL)=1FH(AX)=451FH(5) OUT PORT1, AL(PORT1)=40H(6) OUT PORT1, AX(PORT1)=2040H3-5 已知:(SS)=0A2F0H,(SP)=00C0H,(AX)=8B31H,(CX)=0F213, 试画出下列指令执行到位置1和位置2时堆栈区和SP指针内容的变化示意图。图中应标出存储单元的实际地址PAPUSH AXPUSH CX ;位置 1POPF;位置2解:已知
6、(SS)=0A2F0H,指令顺序依次编号为、,示意图如图所示:(SS)=0A2F0H0A2FBCH13HJ(SP)-4=00BCH (位置 1)F2H0A2FBEH31HSP) -2=00BEH (SP)+2=00BCH +0002H=00BEH (位置 2)8BH0A2FC0H(SP) =00C0H优质.参考.资料3-6 识别下列指令的正确性,对错误的指令,说明出错的原因。(1) MOV DS, 100(2) MOV 1000H, 23H(3) MOV 1000H,2000H(4) MOV DATA, 1133H(5) MOV 1020H, DX(6) MOV AX, 0100H+BX+BP
7、(7) MOV CS, AX(8) PUSH AL(9) PUSH WORD PTRSI(10) IN AL, 80H解:(1 )X,不能对段寄存器送立即数(2 )X,存储单元类型不正确(3 )X, MOV不能实现两个存储单元间 直接传送(4 )X,段名不能作目的操作数(5 )X,立即数不能作目的操作数(6) X,基址寄存器 BX和BP只能使用其 中一个(7 )X, CS不能用作目的操作数(8)X,堆栈操作作为字操作AL应改为AX(9 )S(10 )X, 80H为输入端口号不加方括号(11) OUT CX, AL(12) IN AX, 380H(13) MOV CL, 3300H(14) MO
8、V AX, 2100HBP(15) MOV DS, ES(16) MOV IP, 2000H(17) PUSH CS(18) POP CS(19) LDS CS, BX(20) MOV GAMMA, CS(11) x,应输出到端口而不是通用寄存器(12) X,用DX做间址寄存器 380H应存DX(13) x,类型不匹配(14) S(15) X,两个段寄存器间不能直接传送(16) X, IP不能直接用作目的操作数(17) S(18) X, CS不能做目的操作数(19) X,目的操作数应是通用寄存器而不能是段寄存器CS(20) X,符号名不能作为目的操作数3-7 已知存储器数据段中的数据如图3-3
9、所示。阅读下列的两个程序段后,回答:1. 每个程序段的运行结果是什么?2. 两个程序段各占多少字节的内容,执行时间是多少?(1) LES SI, NUM1MOV AX, SIADD AX, 4SIMOV 8SI, AXMOV AX, NUM1ADD AX, NUM2MOV SUM, AXADD SI, 2 MOV AX, SIADC AX, 4SIMOV 8SI, AXMOV AX, NUM1+2ADC AX, NUM2+2MOV SUM+2 , AX解:1、运行结果如下:(1) 0AC6863A0H2、 0AC6863A0时钟周期字节数(1) LES SI, NUM1 2+EA 24MOV
10、AX, SI 103MNUM148HDS41H16H28HNUM258H22H52H84HSUMADD AX, 4SI 9+EA 24MOV 8SI, AX103ADD SI, 2434MOV AX, SI103ADC AX, 4SI9+EA24MOV 8SI, AX 1024 MOV AX, NUM1103ADD AX, NUM29+EA24MOV SUM, AX9+EA24MOV AX, NUM1+2 9+EA24ADC AX, NUM2+2 9+EA24MOV SUM+2 , AX 9+EA 24图3-33-8已知数据如图3-3所示,数据的低位在前,按下列要求编写程序段:1. 完成NUM
11、1和单元NUM两个字数据相加,和存放在 NUM1中。2. 完成NUM1单元开始的连续4个字节数据相加,和不超过一字节,存放SUM单元。3. 完成NUM1单元开始的连续8个字节数据相加,和 16位数,放在SUM和SUM+俩个单元 (用循环)。4. 完成NUM1和NUM2的双倍精度字数据相加,和放在NUM2开始的字单元中。解:1、CLCLEA SI, NUM1MOV AX, WORD PTR SIADD AX, WORD PTR NUM2MOV WORD PTR SI, AXMOV AX, WORD PTR SI+2ADC AX, WORD PTR NUM2+2MOV WORD PTR SI+2,
12、 AXHLT2、LEA SI, NUM1MOV AL, SIADD AL, 1SIADD AL, 2SIADD AL, 3SIMOV SUM, ALHLT3、CLCCLDLEA SI, NUM1MOV AL, SIMOV AH, 0MOV CX, 7XOR BH, BH AGA: MOV BL, 1SIADC AX, BX INC SIDEC CXJNZ AGA MOV SUM, AX HLT4、LEA SI, NUM1LEA DI, NUM2MOV AX, SIADD AX, DIMOV DI, AXMOV AX, 2SIADC AX, 2DIMOV 2DI, AX3-9 已知的BCD数如图
13、3-3所示,低位在前,按下列要求编写计算 BCD数据(为组合型BCD 的程序段。1. 完成从NUM单元开始的连续8个组合型BCD数相加,和(超过一字节)放在SUM和SUM+1 两个单元中。2. 完成NUM1单元和NUM2单元的两个BCD数相减,其差存入 SUM单元,差=?,(CF)=?解:1、CLCCLDLEA SI, NUM1MOV CX, 7MOV AH, 0MOV AL, SIAGA: INC SIADC AL,SIDAALOOP AGAMOV SUM, ALMOV SUM+1 , AHHLT2、CLCMOV AH, 0MOV AL, NUM1SUB AL, NUM2DASMOV SUM
14、, AL差=0F0H=-10H, CF=1 3-10 写出下列程序段完成的数学计算公式,并画出数据存放的示意图。MOV AX, XMOV DX, X+2ADD AX, YADC DX, Y+2SUB AX, ZSBB DX, Z+2MOV W, AXMOV W+2 DX解:W=X+Y-Z数据存放如图所示:XX+2YY+2ZZ+2WW+23-11 已知数据如图3-3所示,低位在前,按下列要求编写程序段1. NUM和 NUM两个数据相乘(均为无符号数),乘积放在SUM开始的单元。2. NUM和 NUM两个字数据相乘(均为无符号数),乘积放在SUM开始的单元。3. NUM单元的字节数据除以 13 (
15、均为无符号数),商和余数依次放入 SUM开始的两个字节 单元。4. NUM单元的字节数据除以 NUM字单元的字,商和余数依次放入 SUM开始的两个字节单元。 解:1. 为32位X 32位,极为64位2. MOV AX, NUM1IMUL NUM2 ;积在(DX) (AX)中MOV SUM, AXMOV SUM+2 , DX3. MOV AL, NUM1CBWMOV CL, 0DHDIV CLMOV SUM, ALMOV SUM+1, AH4. MOV AX, NUM1CWDIDIV NUM2MOV SUM, AXMOV SUM+2, DX3-12 (L 略)3-13 已知(AL) =0C4H
16、DATA单元中的内容为5AH,写出下列每条指令单独执行后的结果。1.AND AL, DATA5.AND AL, 0FH2.OR AL,DATA6.OR AL, 01H3.XOR AL, DATA7.XOR AL, OFFH4.NOT DATA8.TEST AL, 80H解;1.(AL)=01000000B=40H5.(AL)=04H2.(AL)=0DEH6.(AL)=0C5H3.(AL)=10011110B=9EH7.(AL)=3BH4.(DATA)=0A5H8.(AL)=0C4H,OF=0,CF=03-14 用移位循环指令,编写完成以下功能的程序段(结果放回原处)1. 将无符号数83D分别乘
17、2和处2.2. 将带符号数-47D分别乘2和除2.3. 将图3-3中NUM双字乘2和除2.4. 将图3-3中从NUM併始的4个字乘2.解:1. MOV AL, 53HSHL AL, 1MOV AL, 53HSHR AL, 12. MOV AL, 0D1HSAL AL, 1MOV AL, 0D1HSAR AL, 13. MOV AX, NUM1MOV DX,NUM1+2SHL AX, 1RCL DX, 1MOV AX, NUM1MOV DX, NUM1+2SAR DX, 1RCR AX, 14. SAL NUM1 ,1RCL NUM1+2 1RCL NUM1+4 1RCL NUM1+6 13-1
18、5 编写完成以下功能的程序段,并指出运行后,其标志CF、ZF、SF和OF的状态是什么?1.BCD数58 322.无符口号数3AH3AH3.带符口号数79(57)4.带符口号数32+(42)解:1. MOV AL, 58HSUB AL, 32HDASCF=0, ZF=0, SF=0, OF=02. MOV AL, 3AHSUB AL, 3AHCF=0,ZF=1,SF=0, OF=03. 已知 X=79D,Y=57D 贝U【X】补=01001111,【Y】补=11000111 所以X补一Y补=凶 补 +-Y补=10001000MOV AL, 79MOV BL, -57SUB AL, BLCF=0,
19、 ZF=0, SF=1, OF=14. MOV AL, 0F3HMOV BL, 2AHADD AL, BL或者MOV AL, 0F3HADD AL, 2AHCF=0, ZF=0, SF=0, OF=03-16 用循环移位指令实现下列功能,设(AX) =0C3H1. 设(CL) =8,移位前、后 AX内容不变2. 设(CL) =9,移位前、后 AX内容不变3. 将AX中高4位和低4位交换位置4. 将AX中高4位放到低4位上,而高4位置0解:1. MOV CL, 8ROL AL, CL( 或者 ROR AL, CL)2. MOV CL, 9RCL AL,CL( 或者 RCR AL, CL)3. M
20、OV BX, AXAND AX, OFFOHXCHG BH, BLMOV CL, 4ROL BH, CLROL BL, CLAND BH,0F0HAND BL, 0FHOR AX, BX4. 本小题可以多种解法:解1:5. MOV BX, AXAND AX, 0FF0HXCHG BH, BLMOV CL, 4ROL BH, CLROL BL, CLAND BH,0AND BL, 0FHOR AX, BX解2:MOV BX, AXXCHG AH, ALMOV CL, 4ROR AX, CLSHR AH, CLAND AL, 0FHAND BL, 0FOHOR AL, BL3-17 写出下列程序段
21、执行后的结果:(AL) =?( DL) =?完成的是什么功能?MOV CL,4MOV AL,87MOV DL, ALMOV AL,0FHOR AL,30HSHR DL,CLOR DL,30H解:完成与、或、移位等逻辑运算,运算结果:(AL) =37H; ( DL) =35H3-18 用乘法指令和用传送、移位、相加指令分别实现Y=10X的运算,设X=12H,分别编写这两个程序段。解:(1)MOV AL, XMOV CL, 10NUL CL(2)MOV AL, XSAL AL,1 ;(AL)=2*XMOV BL, AL ;(BL)=X*2SAL AL, 1;(AL)=4*XSAL AL, 1;(A
22、L)=8*XADD AL, BL ;(AL)=8*X+2*X=10*X3-19 写出下面指令序列完成的数学计算是什么?MOV CL, 3SHL AX, CLSHL BL, CLSHL CX, CLSHL DH, CL解:将一多精度数(6字节)乘以83-20 写出下列能代替重复串操作指令完成同样功能的指令序列。(1)REP MOVSW(2)REP CMPSB(3)REP SCASB(4)REP LODSW(5)REP STOSB解:(1)LEA SI, AREA1LEA DI, AREA2MOV CX, NCLDAGA: MOV AX, DS:SIMOV ES:DI, AXINC SIINC S
23、IINC DIINC DIDEC CXJNZ AGARET LEA SI, VAR1LEA DI, VAR2MOV CX, NCLDNEXT: CMPSBJNZ FINLOOP NEXTRET(3) MOV DI, OFFSET COMMANDMOV AL,MOV CX, NCLDNEXT: SCASBJZ FOUNDLOOP NEXTRET(4) MOV SI, OFFSET BUFMOV CX, NCLDNEXT: LODSWMOV RES, AXLOOP NEXTRET(5) MOV DI,OFFSET BUFMOV CX, NCLDNEXT: STOSBDEC CXJNZ NEXTRE
24、TAREA2开始的区中,用下面3-21 欲将数据段中自 AREA仲的100个字数据搬到附加段中以 的3种传送指令编写程序段:1. 用MOV指令;2.用基本串传送指令;3.用重复串传送指令 解:1. LEA SI, AREA1LEA DI, AREA2MOV CX, 100CLDAGAIN: MOV AX, SIMOV ES:DI, AXINC SIINC SIINC DIINC DIDEC CXJNZ AGAINRET2. MOV SI, OFFSET AREA1MOV DI, OFFSET AREA2MOV CX, 100CLDAGAIN: MOVS AREA2 AREA1DEC CXJNZ
25、 AGAINRET3. MOV SI, OFFSET AREA1MOV DI, OFFSET AREAA2CLDMOV CX, 100REP MOVSBRET3-22 假定在数据段中已知字符串和未知字符串的定义如下:STRING1 DB MESSAGE AND PROCCESSSTRING2 DB 20 DUP用串操作指令编写完成下列功能的程序段(设DS和 ES重叠);1. 从左到右把 STRING1中的字符串搬到 STRING2中;2. 从右到左把 STRING1中的字符串搬到 STRING2中;3. 搜索STRING1字符串中是否有空格。如有,记下第一个空格的地址,并放入BX中;4. 比较
26、STRING1和 STRING2字符串是否相同。解:1. MOV SI, OFFSET STRING1MOV DI, OFFSET STRING2MOV CX, 20; 共20个字符CLD;从左到右就是增址方向,设置D&0REP MOVS STRING2, STRING12. MOV SI, OFFSET STRING1 + 13HMOV DI, OFFSET STRING2+13HMOV CX, 20STD;从右到左为减址方向,设置DM 0REP MOVS STRING2+13H, STRING1 + 13H3. MOV DI, OFFSET STRING1MOV CX, 20MOV AL,
27、 20H;空格字符的 ASCII码CLDREPNZ SCASBJZ FOUNDMOV DI, 0JMP DONEFOUND; DEC DI ;因 SCASB勺功能是:(1)( AL) DI(2)DI DI+1MOV BX, DIDENE: HLT4. MOV SI, OFFSET STRING1MOV DI, OFFSET STRING2MOV CX, 20CLDREPZ CMPSBJNZ UMMATMOV AL, 0JMP OUTPUTUMMAT: MOV AL, 0FFHOUTPUT: MOV RESULT, ALRET3-23 下面两条短转移指令的转移地址ADDR1和ADDR2分别是多少
28、(用十六进制表示)?1.0220 EB 0A JMP ADDR12. 0230 EB F7 JMP ADDR2解:1. e为当前IP与目的地址的距离。已知位移量e的计算公式:6=目的地址一(IP源+2),即0AH=目的地址一(IP 源 +23) =ADDR0222H所以,ADDR1=0AH+0222H=022CHE 向转移)2. e=目的地址一(IP源+2)0F7H=ADDR2- 0232H所以,ADDR2=0F7H+0232H=0229H 负向转移)3-24 NEAR JMP, SHORT JMP,LOOP和条件转移指令的转移范围是多少?解:(1) NEAR JMP目标地址距 JMP指令+3
29、276732768字节范围以内。(2) SHORT JMP目标地址距 JMP指令+127128字节范围以内。(3) LOOP所转去的目标地址在 +127128字节范围以内,为 LOOP SHORT_LABEL(4) 条件转移指令:目的地址OPRD为近标号,即转向的目标地址必须在转移指令的+127128字节范围以内。2- 25 设AX和CX中的内容为无符号数,BX和DX中的内容为带符号数,试用CMP指令和条件转移指令实现以下判断:1. 若(AX)超过(CX),则转至 BIGER 2.若(BX) ( DX),则转至 BIGE。3. 若(CX低于(AX),则转至LESS 4. 若(DX ( BX),则转至LESS5. 若(AX) =( CX),则转至 EQUAL解:1. CMP AX, CXJA BIGER2. CMP BX, DXJG BIGER3. CMP CX, AXJB LESS4. CMP DX, BXJL LESS5. CMP AX, CXJZ EQUAL3- 26 (略)3-27 试编写一个程序段,能完成下列数学表达式的功能r-1 (X 兰-1)X=*0(-1X1)1 (X -1)解1:MOV AL, XCMP AL,-1JLE ANS1CMP AL,1JL ANS2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度个人房屋租赁担保合同模板4篇
- 2024苹果加工副产品深加工技术研发合同3篇
- 2025年度彩色激光打印机租赁及升级服务合同模板3篇
- 雪人的创意课程设计
- 年度雕刻雕铣设备控制系统竞争策略分析报告
- 2025年猕猴桃种植技术培训土地租赁与农民增收合同4篇
- 2025年度个人二手房交易合同模板环保装修服务版3篇
- 2025年离婚风险防范:协议离婚与诉讼离婚适用条件合同3篇
- 二零二五年度苗木出口业务代理销售合同4篇
- 二零二五版智能门窗控制系统集成与安装服务合同4篇
- 医院三基考核试题(康复理疗科)
- 2024-2030年中国招标代理行业深度分析及发展前景与发展战略研究报告
- 医师定期考核 (公共卫生)试题库500题(含答案)
- 基因突变和基因重组(第1课时)高一下学期生物人教版(2019)必修2
- 内科学(医学高级):风湿性疾病试题及答案(强化练习)
- 音乐剧好看智慧树知到期末考试答案2024年
- 办公设备(电脑、一体机、投影机等)采购 投标方案(技术方案)
- 案卷评查培训课件模板
- 2024年江苏省样卷五年级数学上册期末试卷及答案
- 人教版初中英语七八九全部单词(打印版)
- 波浪理论要点图解完美版
评论
0/150
提交评论