资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第3章 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) 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相对基址变址寻址寄存器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, SI 解:(1)(AX)=2010H (2)(AX)=0100H (3)(AX)=4C2AH (4)(AX)=3412H (5)(AX)=4C2AH (6)(AX)=7856H (7)(AX)=65B7H (8)(AX)=0002H M30100H12H30101H34H30102H56H30103H78H31200H2AH31201H4CH31202HB7H31203H65HCPUBX0100HSI0002HDS3000H 图3-1 3-4 已知(AX)=2040H,(DX)=380H,端口(PORT)=(80H)=1FH,(PORT+1)=45H,执行下列指令后,指出结果等于多少?解:(1)OUT DX, AL (0380H)=40H(2) OUT DX, AX (380H)=40H (381h)=20H(3) IN AL, PORT (AL)=1FH (4) IN AX, 80H (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指针内容的变化示意图。图中应标出存储单元的实际地址PA。PUSH AXPUSH CX ;位置1POPF ;位置2解:已知(SS)=0A2F0H,指令顺序依次编号为、,示意图如图所示: (SS)=0A2F0H 0A2FBCH13H(SP)-4=00BCH (位置1) F2H0A2FBEH31H(SP)-2=00BEH (SP)+2=00BCH +0002H=00BEH (位置2)8BH0A2FC0H(SP)=00C0H 3-6 识别下列指令的正确性,对错误的指令,说明出错的原因。1(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) MOV CS, AX(8) PUSH AL(9) PUSH WORD PTRSI(10) IN AL, 80H(11) OUT CX, AL(12) IN AX, 380H(13) MOV CL, 3300H(14) MOV AX, 2100HBP(15) MOV DS, ES(16) MOV IP, 2000H(17) PUSH CS(18) POP CS(19) LDS CS, BX(20) MOV GAMMA, CS解:(1) ,不能对段寄存器送立即数(2) ,存储单元类型不正确(3) ,MOV 不能实现两个存储单元间 直接传送(4) ,段名不能作目的操作数(5) ,立即数不能作目的操作数(6) ,基址寄存器BX和BP只能使用其 中一个(7) ,CS不能用作目的操作数(8) ,堆栈操作作为字操作AL应改为 AX(9) (10) ,80H为输入端口号不加方括号(11) ,应输出到端口而不是通用寄存器(12) ,用DX做间址寄存器380H应存 DX(13) ,类型不匹配(14) (15) ,两个段寄存器间不能直接传送(16) ,IP不能直接用作目的操作数(17) (18) ,CS不能做目的操作数(19) ,目的操作数应是通用寄存器而不 能是段寄存器CS(20) ,符号名不能作为目的操作数3-7 已知存储器数据段中的数据如图3-3所示。阅读下列的两个程序段后,回答:1. 每个程序段的运行结果是什么?2. 两个程序段各占多少字节的内容,执行时间是多少?(1) LES SI, NUM1 MOV AX, SI ADD AX, 4SI MOV 8SI, AX ADD SI, 2 MOV AX, SI ADC AX, 4SI MOV 8SI, AX(2) MOV AX, NUM1 ADD AX, NUM2 MOV SUM, AX MOV AX, NUM1+2 ADC AX, NUM2+2 MOV SUM+2, AX解:1、运行结果如下:(1) 0AC6863A0H (2) 0AC6863A02、 时钟周期 字节数 (1) LES SI, NUM1 2+EA 24 MOV AX, SI 10 3 ADD AX, 4SI 9+EA 24MNUM148HDS41H16H28HNUM258H22H52H84HSUM MOV 8SI, AX 10 3 ADD SI, 2 4 34 MOV AX, SI 10 3 ADC AX, 4SI 9+EA 24 MOV 8SI, AX 10 24 (2) MOV AX, NUM1 10 3 ADD AX, NUM2 9+EA
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号