版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 80X86的寻址方式 及指令系统,2020/7/27,微机原理,2,本章要点,及各类指令的功能和用法,80X86系统的各种寻址方式,80X86的指令系统构成,2020/7/27,微机原理,3,定义:,程序:让计算机完成某种操作的命令,所有指令的集合 称为指令系统。 指令用助记符表示,汇编语言程序经过编译连接后,指令 助记符转换为二进制代码,即指令代码,或称为机器码, 可以由CPU执行。指令代码需要事先存放在微机系统的 内部存储器中由CS寄存器中的内容所指定的代码段中。,2020/7/27,微机原理,4,指令的一般格式: 操作助记符 目的操作数(或其位置),源操作数(或其位置) dst
2、src,例如:MOVAX, SI对应的机器码是8BH,04H MOVAX, ES:SI对应的机器码是26H,8BH,04H,2020/7/27,微机原理,5,3.1 8086的寻址方式(addressing mode),寻址方式:指令中给出的操作数的表示 (或存放)方式,如果操作数存放在存储器 中,CPU必须先计算出操作数的物理地址,寄存器间接寻址,直接寻址,寄存器寻址,隐含寻址,基址变址相对寻址,基址变址寻址,寄存器相对寻址,立即寻址,寻 址 方 式,2020/7/27,微机原理,6, 立即寻址:操作数(8位或16位)出现在指令 中,与指令代码一起存放在存储器的代码段中。,例: MOV AX
3、,6000H MOV AH,60H MOV AL, 00H,2020/7/27,微机原理,7,寄存器寻址:操作数放在CPU内部的寄存器中, 可为8位或16位寄存器,由指令给出。,例:MOV AX,BX MOV AH, BH,2020/7/27,微机原理,8, 直接寻址:操作数放在存储器的数据段(其段地址由 DS中的内容决定)中,其有效地址(偏移地址 直接用偏(位)移量表示在指令中,占2个字节。偏 移量常用disp表示,是有效地址的一部分或全部, 可以8位也可以16位。 例:MOVAX,DS:0100H,2020/7/27,微机原理,9,寄存器间接寻址:操作数在存储单元中,其有效 由BXSI或D
4、I中的内容给出表示为: (BX) EA= (SI) (DI) 寄存器BXSI或DI在指令中给出。 例: MOVAX,SI,2020/7/27,微机原理,10, 寄存器相对寻址:操作数在存储器中,其有效地址是 位移量(可8位或者16位)与变址或基址寄存器之和, Disp与寄存器在指令中给出。,例: MOV AX,5BX 也可写成 MOV AX,BX5,2020/7/27,微机原理,11, 基址变址寻址:操作数在存储器中,偏移地址由基址寄 存器和变址寄存器中的内容相加确定。,例:MOVAX,BXDI,2020/7/27,微机原理,12, 基址变址相对寻址:寄存器相对寻址与基址变址寻址 方式的结合。
5、,disp与寄存器均在指令中给出。 例: MOV AX,5BPSI,2020/7/27,微机原理,13, 隐含寻址:指令本身隐含了操作数的地址, 例如:字符串操作指令MOVS, 源操作数由DS:SI寄存器间接寻址, 目的操作数由ES:DI寄存器间接寻址。,以各种类型访问存储器时,存储单元地址的组成:,2020/7/27,微机原理,14,3.2 8086/8088的指令系统,a,除SAHF外不影响标志位,SAHF是将AH 内容送到 标志寄存器的低8位; b,不能用CS作为目的操作数; c,源操作数和目的操作数不能同时在存储器中, 即:不能在一条指令中实现数据在存储器中的传送。,3.2.1 数据传
6、送指令,2020/7/27,微机原理,15,.数据传送,由 源-目的 例:MOVAX,BX ;寄存器寻址 MOVDL,AL ;寄存器寻址 MOVAX,02 ;源操作数用立即寻址 MOVSI,BX ;源操作数寄存器间接寻址 MOV AL,4DI ;源操作数用寄存器相对寻址 MOV AX,BX+2 ;源操作数用寄存器相对寻址 MOV BXDI,DX;目的操作数用基址加变址寻址,1、MOV指令:数据传送(复制),2020/7/27,微机原理,16,立即数、代码段寄存器CS只能作源操作数。 IP寄存器不能作源操作数或目的操作数。 MOV指令不能在两个存储单元之间直接传 送数据,也不能在两个段寄存器之间
7、直接 传送数据。 两个操作数的类型属性要一致。,注意事项!,2020/7/27,微机原理,17,. 堆栈操作指令: 堆栈:是以后进先出规则保存信息的一种存储机构。 (1)8086中堆栈段地址在SS寄存器中,堆栈当前偏移地 址在SP寄存器中,SP称为堆栈指针。SP的初值代表了堆 栈区的大小,若 SP=0100H,有右图所示: ( 2 ) 堆栈操作方式: 以字为单位进行操作,高字节在高地址, 低字节在低地址。,2020/7/27,微机原理,18,(3)堆栈操作指令 a、压入指令: PUSH 例:PUSHAX 如果 AX=1234H,则该指令执行后的结果: SP00FEH, (00FFH)12H,(
8、00FEH)34H,b、弹出指令: POP 例:POPBX,2020/7/27,微机原理,19,. 字节或字交换指令: 寄存器之间或寄存器与存储器之间内容交换。 XCHG OPR1,OPR2 ;(OPR1) (OPR2) 例:xchg ax, cx,2020/7/27,微机原理,20,. 字节转换指令:常用于查表。 格式:XLAT 转换表 即:XLAT ;(BX+AL)AL,BX的内容是表的首地 址,AL的内容是表内的序号。采用隐含寻址方式。 功能:将一个字节从一种代码转换成另一种代码。 XLAT指令是通过查表方式来完成翻译功能的,因此,执行 该指令之前,必须建立好一张翻译表,该表的最大容量为
9、 256个字节。,2020/7/27,微机原理,21,INA,port;数据从 port 端口输入到AL或AX OUTport,A;数据从AL或AX输出到 port 端口 1) A是AL(8位输入输出)或AX(16位输入输出) 2)port 是外设的端口地址,可以是8位立即数表示的直接 地址,也可以用DX寄存器的内容作为端口地址。 例:INAL,3FH MOVDX,3FH OUTDX,AX,2、输入输出指令(I/O指令),2020/7/27,微机原理,22,SAHF,PUSHF,POPF,标志送AH指令 功能是:将标志寄存器中的SF、ZF、AF、PF传送至AH的指定位,空位没有定义,AH送标志
10、位寄存器低字节指令。 影响标志位,但对OF、DF、IF无影响,标志入栈指令 修改堆栈指针 不影响标志位,标志出栈指令 修改堆栈指针 影响标志位,3、地址目标传送指令,LEA,2020/7/27,微机原理,23,4、标志传送指令,标志送AH 指令LAHF,AH送标志寄 存器低字节 指令SAHF,标志入栈指 令PUSHF,标志出栈指 令POPF,2020/7/27,微机原理,24,3.2.2 算术运算类指令,1.加法与减法指令 a,影响标志位 b,只能有一个操作数在存储器中 c,目的操作数不能采用立即寻址方法,ADDDST,SRC ;DSTDST+ SRC ADC DST,SRC ;DSTDST+
11、 SRC+CF SUB DST,SRC ;DSTDST- SRC SBB DST,SRC ;DSTDST- SRC-CF NEG DST ;DST0-DST,即取补,2020/7/27,微机原理,25,ADDAX,SI ; 完成16位数据的加法运算 ;SRC在存储器中 ;DST是CPU中的AX寄存器,例:,SBBCX,DATA1 ; 完成16位数据的减法运算 ;SRC在存储器中 ;DST是CPU中的CX寄存器,例:,2020/7/27,微机原理,26,2.比较指令 CMPDST,SRC ;DST-SRC,结果不保留 ;只影响标志位 例: CMPAX,BX,a、作为无符号数时,比较后的大小由CF
12、和ZF决定: ZF=1 :则 AX = BX ZF=0,CF=0 :则 AX BX ZF=0,CF=1 :则 AX BX,b、 作为带符号数时,比较后的大小由SF、ZF和OF决定: ZF=1 :则 AX = BX OF 异或 SF = 0 :则 AX BX OF 异或 SF = 1 :则 AX BX,2020/7/27,微机原理,27,例:MOVAX,003AH ;0000 0000 0011 1010 MOVBX,8003H ;1000 0000 0000 0011 CMPAX,BX ;1000 0000 0011 0111 影响标志位: CF=1,OF=1,ZF=0,SF=1,PF=0,A
13、F=0 作为无符号数时,CF=1, 则 AX BX 003AH小于8003H 作为带符号数时,OF 异或 SF = 0,则 AXBX 正数大于负数,2020/7/27,微机原理,28,3. 增量减量指令 影响除CF以外的所有状态标志,只有一个操作数DST, 可以是8位也可以是16位操作数。常用来修改计数器的 计数指针。 INC DST ; DST+1 DST DEC DST ; DST-1 DST 例: INCAX ;AX+1 AX,2020/7/27,微机原理,29,4、乘法与除法指令 只有一个操作数SRC,且不可以是立即数。,IMUL SRC ;符号数的乘法 ;字节运算时,ALSRC AX
14、 ;字运算时, AXSRC DX与AX MUL SRC ;无符号数的乘法,其它同上 IDIV SRC ;符号数除法 ;字节运算时:AXSRC的商AL ; AXSRC的余数AH ;字运算时: DX:AXSRC的商AX ; DX:AXSRC的余数DX DIV SRC ;无符号数除法,其它同上,2020/7/27,微机原理,30,(1)乘法运算后,标志位的使用: CF = OF = 1,说明结果为一个字或双字。 CF = OF = 0,说明结果为一个字节或字, 无符号数时,高字(高字节)全为0; 符号数时,高字(高字节)仅是低字(低字节) 的符号扩展 (2)除法结果的标志位无意义。 (3)除数为0或
15、商溢出时,除法结果无意义, 并引起溢出中断。,注意:,2020/7/27,微机原理,31,5,符号扩展指令 CBW ;将AL中的字节数符号扩展成AX中的字. CWD ;将AX中的字符号扩展成DX与AX中的双字.,扩展时:正数扩0, 负数扩1,已知 AL=85H, BX=0345H,求BXAL的和 执行CBW ;85H是负数,得到 AX=0FF85H ADDAX,BX ;0FF85H+0345H = 02CAH 得到 AX02CAH,例,2020/7/27,微机原理,32,6,BCD数调整指令 操作数使用隐含寻址,且规定为AL或AX,(1) 针 对 组 合 BCD 数,组合BCD数的加法调整指令
16、,半字节1位BCD 相加,超过9或有进位,要加6调整,低半字节 调整后有进位,高半字节再调整。表示为: 若 AL DSTSRCDST,清CF、OF ;根据结果置SF、ZF和PF,标志AF不定 ORDST,SRC ; DSTSRCDST,标志位设置同上 XORDST,SRC ; DST 异或SRC-DST, 标志位设置同上 TEST DST,SRC ; DSTSRC,仅置标志位,标志位设置同上 NOTDST ; DST中各位取反DST,不影响标志位,2020/7/27,微机原理,39,OR CL,03H ;置位CL的D0、D1 AND AL,0F5H ;清AL的D1、D3 XOR AH,0FH
17、;AH的低半字节取反 TEST AL,02H ;判断AL的D1是否为0, ;是,ZF=1,否则,ZF=0 XOR AL,TEST_CODE ; 当AL与TEST_CODE相同时,ZF=1,否则,ZF=0,逻辑运算指令经常用来对寄存器或存储单元的某 些位进行置位(1)或者清零(0)的操作。,例:,2020/7/27,微机原理,40,2、移位指令: 按位进行从左到右或从右到左的移位。以下 CNT 表示移位的次数。 SHR DST,CNT ;逻辑右移 SHL/SAL DST,CNT ;逻辑/算术左移 SAR DST,CNT ;算术右移,2020/7/27,微机原理,41,3、循环移位指令: RORD
18、ST,CNT ;循环右移 ROLDST,CNT ;循环左移 RCR DST,CNT ;带进位循环右移 RCL DST,CNT ;带进位循环左移,a, 移位指令影响AF外的各状态标志位. b, 循环移位指令只影响CF、OF c, CNT可以为立即数1或者寄存器CL(预先设置移位次数): 当CNT=1时,OF=0表示移位前后DST的最高位相同,OF=1, 表示不同;当CNT1时,OF无意义.,2020/7/27,微机原理,42,(1)串传送:(DS:SI)(ES:DI),隐含寻址, 不影响标志位。 MOVSW;字传送:SI2SI,DI2DI MOVSB;字节传送:SI1SI,DI1DI (2)串比
19、较:(DS:SI)(ES:DI),隐含寻址,仅影响标志位。 CMPSW;字比较:SI2SI,DI2DI CMPSB ;字节比较:SI1SI,DI1DI (3)串扫描:隐含寻址,仅影响标志位。 SCASW ;字扫描:AX(ES:DI),DI2DI SCASB ;字节扫描:AL(ES:DI),DI1DI,3.2.4 串操作指令与重复前缀,2020/7/27,微机原理,43,(4)串取出:隐含寻址,不影响标志位。 LODSW ;字取出:(DS:SI)AX,SI2SI LODSB ;字节取出:(DS:SI)AL,SI1SI (5)串存储:隐含寻址,不影响标志位。 STOSW ;字存储:AX(ES:DI
20、),DI2 DI STOSB ;字节存储:AL(ES:DI),DI1 DI,2020/7/27,微机原理,44,6、串操作可以加重复前缀使得其连续执行多次 REP MINST ;当 CX0 时,重复执行MINST,且CX1CX ;MINST是MOVS或STOS指令 REPE/REPZ CINST ;当 CX0 且 ZF=1 时,重复执行CINST ;且CX1 CX,CINST是CMPS或SCAS REPNE/REPNZ CINST ;当 CX0 且 ZF=0 时,重复执行CINST; 且CX1 CX,CINST是CMPS或SCAS,2020/7/27,微机原理,45,串操作类指令可以与重复前缀
21、配合使用,从而操作得 以重复执行,并在条件符合时停止执行。,无,LODS,REPE/REPZ REPNE/REPNZ,SCAS,REPE/REPZ REPNE/REPNZ,CMPS,REP,MOVS,可添加的重复前缀,REP,STOS,串操作指令,2020/7/27,微机原理,46,转移类指令可以改变代码段寄存器CS与指令指针IP的值或仅 改变IP的值,从而可以以改变指令执行的顺序,以满足程序分 支或跳转的需要。,3.2.5 控制转移指令,1. 无条件转移、调用和返回指令,(1)无条件转移指令JMP 格式:JMP OPRD ;OPRD是转移的目的地址 功能:转移到目的地址所指示的指令去执行。,
22、2020/7/27,微机原理,47,直接转移,短程转移,近程转移,远程转移,JMP SHORT OPRD ; IP=IP+8位位移量,目的地址与JMP指 令所处地址的距离在-128127范围之内。,近程转移:JMP NEAR PTR OPRD IP=IP+16位位移量,NEAR可省略, 目的地址与JMP指令处于同一地址段 范围之内。,JMP FAR PTR OPRD IP=OPRD的段内位移量 CS=OPRD所在段地址。,直接转移的3种形式:,2020/7/27,微机原理,48,间接转移指令的目的地址可以由存储器或寄存器给出, 有以下2种形式: 段内间接转移: JMP WORD PTR OPR
23、D ;IP=EA (由OPRD的寻址方式确定) 例如:JMP WORD PTRBX ;IP=DS16+BX JMP WORD PTR BX ;IP=BX 段间间接转移: JMP DWORD PTR OPRD ; IP=EA,CS=EA+2 该指令指定的双字节地址指针的第一个字单元内容送IP, 第二个字单元内容送CS。 例如: JMP DWORD PTR BX+SI,2020/7/27,微机原理,49,(2)调用和返回 功能:调用CALL指令用来调用一个过程或子程序。,调用指令格式如下:, 段内调用: CALL NEAR PTR OPRD 操作:SP=SP-2,(SP+1,SP)=IP,IP=IP+16位位移量 CALL指令首先将当前IP内容压入堆栈。当执行RET指令后, 再从堆栈中取出一个字放入IP中。,2020/7/27,微机原理,5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年3月广东潮州市卫生健康局直属医疗机构赴南方医科大学招聘117人备考题库含完整答案详解(典优)
- 2026春季中国工商银行云南分行校园招聘180人备考题库及完整答案详解(全优)
- 2026四川绵阳市公安局游仙区分局招聘警务辅助人员20人备考题库含答案详解(培优)
- 杭州银行2026届春季校园招聘备考题库标准卷附答案详解
- 2026天津市中小企业服务中心、天津市无线电监测站、天津市工业和信息化稽查总队招聘6名事业单位人员备考题库含答案详解(能力提升)
- 2026云南玉溪市文化和旅游局城镇公益性岗位招聘2人备考题库【能力提升】附答案详解
- 2025 高中文学类阅读理解之散文哲理思考课件
- XX初中劳动教育教师2026年春季学期“劳动周”活动设计与实施总结
- 学校防灾减灾安全生产措施
- 2026版考研数学三概率论与数理统计核心考点梳理
- 2026年及未来5年市场数据中国建筑施工升降机行业市场调查研究及发展趋势预测报告
- 2025年中国饰品行业发展状况与消费行为调查数据-
- (一模)扬州市2026届高三模拟调研测试数学试卷(含答案详解)
- 2026福建水投集团沙县水务有限公司招聘4人笔试参考题库及答案解析
- 2025-2026学年北京市东城区九年级(上)期末英语试卷
- 【答案】《当代社会中的科学与技术》(南京大学)章节期末慕课答案
- 建筑防火安全培训
- 2025年云南省公务员录用考试《行测》真题及解析及答案
- 规范村干部坐班制度
- 2026年高密度互连板(HDI)项目可行性研究报告
- 癫痫培训教学课件
评论
0/150
提交评论