8086的寻址方式和指令系统课件_第1页
8086的寻址方式和指令系统课件_第2页
8086的寻址方式和指令系统课件_第3页
8086的寻址方式和指令系统课件_第4页
8086的寻址方式和指令系统课件_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8086的寻址方式和指令系统2§3-18086的寻址方式指令与指令格式指令寻址方式3指令机器指令以二进制代码(机器码)表示指令直接,不易读懂汇编指令以符号形式表示指令易读,需要翻译(汇编)与CPU相关4指令成分操作码(操作的性质)表示指令应完成的具体操作以助记符的形式表示操作数(操作的对象)表示指令的操作对象(参与操作的对象)源操作数、目的操作数5指令操作数双操作数OPR DEST,SRC单操作数OPR DEST无操作数OPR

(隐含操作数)6寻址方式及操作数类型寻找指令中所需操作数的方法所需的操作数寄存器操作数存储器操作数立即数操作数输入/输出端口操作数7指令寻址方式立即数寻址寄存器寻址#存储器寻址直接寻址寄存器间接寻址变址寻址基址寻址基址变址寻址I/O寻址8寻址方式——立即数寻址指令中直接给出操作数本身八位/十六位的常数仅用作源操作数的寻址

MOV AX,1000H; AX←1000H MOV AH,10H; AH←10H9寻址方式——立即数寻址MOVCX,2A50H10寻址方式——寄存器寻址所需的操作数在CPU的寄存器中,指令中给出该寄存器的名称八位/十六位寄存器速度较快

MOV AX,BX;AX←(BX)

MOV AH,AL;AH←(AL)11寻址方式——直接寻址所需的操作数在存储器中。指令中直接给出操作数所在单元的有效地址(段内偏移地址)

MOVAX,[1000H];AX←(DS:1000H) MOV[1000H],AH;DS:1000H←(AH)12寻址方式——直接寻址MOVAX,[2000H]13寻址方式——寄存器间接寻址所需的操作数在存储器中。操作数所在单元的有效地址存放在寄存器中,指令中给出寄存器的名称仅限于BX、BP、SI、DI MOVAX,[BX];AX←(DS:(BX)) MOVAH,[BP];AH←(SS:(BP))14寻址方式——寄存器间接寻址MOVBX,[SI]15寻址方式——变址寻址所需的操作数在存储器中变址寄存器:SI、DI操作数所在单元的有效地址变址寄存器内容指令中给出的相对位移

MOVAX,2[DI];AX←(DS:(DI)+2) MOVAX,[DI+2];AX←(DS:(DI)+2)∑16寻址方式——变址寻址MOVBX,COUNT[SI]17寻址方式——基址寻址所需的操作数在存储器中。基址寄存器:BX、BP操作数所在单元的有效地址基址寄存器内容指令中给出的相对位移

MOVAX,2[BX];AX←(DS:(BX)+2) MOVAX,[BX+2];AX←(DS:(BX)+2)∑18寻址方式——基址变址寻址所需的操作数在存储器中。操作数所在单元的有效地址:基址寄存器内容变址寄存器内容指令中给出的相对位移

MOVAX,2[BX][DI];

AX←(DS:(BX)+(DI)+2)∑19寻址方式——基址变址寻址MOVAX,[BX][SI]20寻址方式——基址变址寻址MOVAX,MASK[BX][SI]21寻址方式——存储器寻址小结指令中给出地址表达式,有效地址EA由三部分组成(可选)相对位移Disp基址寄存器BX/BP变址寄存器SI/DI22寻址方式——输入/输出寻址输入输出端口操作数直接寻址指令中直接给出I/O端口地址的低八位,只能访问256个I/O端口(00H~FFH)

INAL,2FH间接寻址用寄存器DX的内容来指定I/O端口地址适用十六位地址,能访问64K个I/O端口(0000H~FFFFH)

INAL,DX23§3-2指令的机器码表示法机器码二进制机器语言指令变长指令指令指令的长度为1~6个字节操作码操作数字/字节寄存器...24指令编码MOVSP,BX25指令编码MOVWordptr[BX+2100H],0FA50H26§3-38086的指令系统数据传送指令算术运算指令逻辑运算及移位指令字符串处理指令控制转移指令处理器控制指令27数据传送指令共14条寄存器←→寄存器寄存器←→存储器累加器←→I/O端口字传送/字节传送除了SAHF/POPF外,均不影响PSW28数据传送指令通用数据传送指令输入输出指令地址目标传送指令#标志传送指令29通用数据传送指令MOV DEST,SRCPUSH SRCPOP DESTXCHG DEST,SRCXLAT30通用数据传送——MOV31通用数据传送——MOV规则立即数不能作DEST立即数不能传至段寄存器存储器之间不能交互(双操作数时)(串除外)段寄存器之间不能交互CS不能作为DESTIP不能参与传送DEST和SRC的类型必须一致32通用数据传送——PUSH/POP字操作16位操作数通用寄存器段寄存器(CS不能用于POP)存储器FILOSP指向栈顶底部高地址/顶部低地址33通用数据传送——XCHG8位/16位操作数交换寄存器←→寄存器寄存器←→存储器段寄存器不能参与34通用数据传送——XLAT查表(DS×10H+(BX)+(AL))→ALBX:表首AL:表内偏移值(自变量)35输入输出指令累加器AX/AL←→I/O端口输入指令IN输出指令OUT36输入输出指令——ININ AL,34H ;(34H)→ALIN AX,34H ;(34H)→AL ;(35H)→AHIN AL,DX ;((DX))→ALIN AX,DX ;((DX))→AL ;((DX)+1)→AH37地址目标传送指令LEADEST,SRCLDSDEST,SRCLESDEST,SRC其中DEST:16位通用寄存器(除了段寄存器)SRC:存储器操作数(地址表达式)38地址目标传送——LEALEA BX,1000H[BX][SI] 1000H+(BX)+(SI)→BX有效地址(段内偏移地址)39地址目标传送——LDSLDS SI,1000H[BX][SI]

40地址目标传送——LESLES DI,1000H[BX][SI]

41标志传送指令LAHFSAHFPUSHFPOPF隐含操作数影响PSW 42算术运算指令操作数带符号二进制数(补码)无符号数二进制数无符号压缩十进制数无符号非压缩十进制数43算术运算指令加法减法乘法除法44加法运算指令ADD DEST,SRCADC DEST,SRCINC DESTAAADAA45减法运算指令SUB DEST,SRCSBB DEST,SRCDEC DESTNEG DESTCMP DEST,SRCAASDAS46乘法运算指令MUL SRCIMUL SRCAAM47除法运算指令DIV SRCIDIV SRCAADCBWCWD48逻辑运算及移位指令逻辑运算算术移位循环移位49逻辑运算按位运算NOT DEST ;不影响标志位AND DEST,SRC OR DEST,SRC CF/OF→0XOR DEST,SRC AF无效TEST DEST,SRC ZF/SF/PF有效50算术移位SHL DEST,计数值 SHR DEST,计数值SAR DEST,计数值计数值大于1时,必须使用CL作计数器0CF0CFCF51循环移位ROL DEST,计数值 ROR DEST,计数值RCL DEST,计数值RCR DEST,计数值CFCFCFCF52串处理指令(串操作)批量数据处理串一系列存放在存储器中的字或字节数据最大串长64KB串元素串中的成员每种串操作指令只对串中的元素作同一种操作53串处理指令(串操作)54串处理指令(串操作)串指令的操作源串位于DS段内(可以使用段前缀),偏移量由SI给出目的串位于ES段内(不允许使用段前缀),偏移量由DI给出每次执行后修正SI/DI,增减方向由DF确定(DF=1:减量;DF=0:增量)。(STD/CLD)串的长度(字节/字数)存放在CX中可以在存储器之间操作55串处理指令(串操作)串操作单次操作按指令内容执行一次操作修正SI/DI重复操作REP前缀重复指令串指令规定的操作,直至次数到或条件成立如 REPMOVS56串处理指令(串操作)MOVS((DS)×10H+(SI))→((ES)×10H+(DI))ifDF=1then(SI)-1→SI,(DI)-1→DI else (SI)+1→SI,(DI)+1→DIREPMOVS……(CX)-1→CXif(CX)<>0thenREDOelseContinue57串处理指令(串操作)CMPS串比较SCAS串扫描指令将AX(或AL)中的数据与目标串中的数据比较用作数据搜索LODS数据串装入将源串中的数据(单个)装入AX(或AL)中重复前缀无实际意义STOS串存储将AX(或AL)中的数据存入目的串单元中可加重复前缀58串处理指令(串操作)重复前缀REPREPE/REPZREPNE/REPNZ59控制转移指令程序转移改变CS:IP(或IP)JMP/J××CALL/RETLOOP/LOOP××60控制转移指令——无条件转移JMP目标61控制转移指令——无条件转移JMPDWORDPTR[SI+0125H](CS)=1200H,(IP)=0005H(DS)=2500H,(SI)=1300H(26425H)=4500H,(26427H)=32F0H62控制转移指令——无条件转移63控制转移指令——子程序调用CALL过程名断点入栈→转移(改变CS:IP)RET断点出栈→CS:IPCALL段内/段间直接/间接64控制转移指令——子程序调用段内直接目标地址的偏差在指令中CALLPROG_G(CS)=2000H,(IP)=1050H(SS)=5000H,(SP)=0100HDISP=1234HIP←(IP)+DISP65控制转移指令——子程序调用66控制转移指令——子程序调用段内间接CALLBX目标地址在寄存器中CALLWORDPTR[BX+SI]目标地址在存储器中67控制转移指令——子程序调用段间直接目标地址在指令中CALLFARPTRPROG_F(CS)=1000H,(IP)=205AH(SS)=2500H,(SP)=0050HPROG_F位置(CS)=3000H,(IP)=0500H68控制转移指令——子程序调用69控制转移指令——子程序调用段间间

温馨提示

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

评论

0/150

提交评论