




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章80X86的寻址方式
及指令系统
7/21/20231本章要点及各类指令的功能和用法80X86系统的各种寻址方式80X86的指令系统构成7/21/20232>>微机原理<<定义:程序:让计算机完成某种操作的命令,所有指令的集合称为指令系统。指令用助记符表示,汇编语言程序经过编译连接后,指令助记符转换为二进制代码,即指令代码,或称为机器码,可以由CPU执行。指令代码需要事先存放在微机系统的内部存储器中由CS寄存器中的内容所指定的代码段中。7/21/20233>>微机原理<<指令的一般格式:
操作助记符目的操作数(或其位置),源操作数(或其位置)
dst
src
例如: MOV AX,[SI] 对应的机器码是8BH,04H MOV AX,ES:[SI] 对应的机器码是26H,8BH,04H7/21/20234>>微机原理<<
3.18086的寻址方式(addressingmode)寻址方式:指令中给出的操作数的表示(或存放)方式,如果操作数存放在存储器中,CPU必须先计算出操作数的物理地址寄存器间接寻址直接寻址寄存器寻址隐含寻址基址变址相对寻址基址变址寻址寄存器相对寻址立即寻址寻址方式7/21/20235>>微机原理<<①立即寻址:操作数(8位或16位)出现在指令中,与指令代码一起存放在存储器的代码段中。例:MOV AX,6000HMOVAH,60HMOVAL,00H7/21/20236>>微机原理<<
②寄存器寻址:操作数放在CPU内部的寄存器中,可为8位或16位寄存器,由指令给出。例:MOVAX,BXMOVAH,BH7/21/20237>>微机原理<<③直接寻址:操作数放在存储器的数据段(其段地址由DS中的内容决定)中,其有效地址(偏移地址直接用偏(位)移量表示在指令中,占2个字节。偏移量常用disp表示,是有效地址的一部分或全部,
可以8位也可以16位。例:MOV AX,DS:[0100H]7/21/20238>>微机原理<<
②寄存器间接寻址:操作数在存储单元中,其有效由BX﹑SI或DI中的内容给出表示为:
(BX)
EA=(SI)(DI)寄存器BX﹑SI或DI在指令中给出。例:MOV AX,[SI]7/21/20239>>微机原理<<
⑤寄存器相对寻址:操作数在存储器中,其有效地址是位移量(可8位或者16位)与变址或基址寄存器之和,Disp与寄存器在指令中给出。例:MOVAX,5[BX]也可写成MOVAX,[BX+5]7/21/202310>>微机原理<<⑥
基址变址寻址:操作数在存储器中,偏移地址由基址寄存器和变址寄存器中的内容相加确定。例:MOV AX,[BX][DI]7/21/202311>>微机原理<<⑦
基址变址相对寻址:寄存器相对寻址与基址变址寻址方式的结合。disp与寄存器均在指令中给出。例:MOVAX,5[BP][SI]7/21/202312>>微机原理<<⑧隐含寻址:指令本身隐含了操作数的地址,例如:字符串操作指令 MOVS,
源操作数由DS:SI寄存器间接寻址,目的操作数由ES:DI寄存器间接寻址。以各种类型访问存储器时,存储单元地址的组成:7/21/202313>>微机原理<<3.28086/8088的指令系统a,除SAHF外不影响标志位,SAHF是将AH内容送到标志寄存器的低8位;b,不能用CS作为目的操作数;c,源操作数和目的操作数不能同时在存储器中,即:不能在一条指令中实现数据在存储器中的传送。3.2.1数据传送指令7/21/202314>>微机原理<<Ⅰ.数据传送,由源---》目的例:MOV AX,BX;寄存器寻址
MOV DL,AL;寄存器寻址
MOV AX,02;源操作数用立即寻址
MOV SI,[BX];源操作数寄存器间接寻址
MOVAL,4[DI];源操作数用寄存器相对寻址
MOVAX,[BX+2];源操作数用寄存器相对寻址
MOV[BX][DI],DX;目的操作数用基址加变址寻址1、MOV指令:数据传送(复制)7/21/202315>>微机原理<<立即数、代码段寄存器CS只能作源操作数。
IP寄存器不能作源操作数或目的操作数。
MOV指令不能在两个存储单元之间直接传送数据,也不能在两个段寄存器之间直接传送数据。两个操作数的类型属性要一致。
注意事项!7/21/202316>>微机原理<<Ⅱ.堆栈操作指令:堆栈:是以后进先出规则保存信息的一种存储机构。(1)8086中堆栈段地址在SS寄存器中,堆栈当前偏移地址在SP寄存器中,SP称为堆栈指针。SP的初值代表了堆栈区的大小,若SP=0100H,有右图所示:
(2)堆栈操作方式:以字为单位进行操作,高字节在高地址,低字节在低地址。7/21/202317>>微机原理<<(3)堆栈操作指令a、压入指令:PUSH例:PUSH AX
如果AX=1234H,则该指令执行后的结果:
SP=00FEH,(00FFH)=12H,(00FEH)=34Hb、弹出指令:POP例: POP BX7/21/202318>>微机原理<<Ⅲ.字节或字交换指令:寄存器之间或寄存器与存储器之间内容交换。XCHGOPR1,OPR2
;(OPR1)(OPR2)例:xchgax,cx7/21/202319>>微机原理<<Ⅳ.字节转换指令:常用于查表。格式:XLAT[转换表]
即:XLAT ;(BX+AL)-AL,BX的内容是表的首地址,AL的内容是表内的序号。采用隐含寻址方式。功能:将一个字节从一种代码转换成另一种代码。XLAT指令是通过查表方式来完成翻译功能的,因此,执行该指令之前,必须建立好一张翻译表,该表的最大容量为256个字节。
7/21/202320>>微机原理<<
IN A,port ;数据从port端口输入到AL或AXOUT port,A ;数据从AL或AX输出到port端口1)A是AL(8位输入输出)或AX(16位输入输出)2)port是外设的端口地址,可以是8位立即数表示的直接地址,也可以用DX寄存器的内容作为端口地址。例: IN AL,3FH MOV DX,3FH OUT DX,AX2、输入输出指令(I/O指令)7/21/202321>>微机原理<<SAHFPUSHFPOPF标志送AH指令功能是:将标志寄存器中的SF、ZF、AF、PF传送至AH的指定位,空位没有定义AH送标志位寄存器低字节指令。影响标志位,但对OF、DF、IF无影响标志入栈指令修改堆栈指针不影响标志位标志出栈指令修改堆栈指针影响标志位3、地址目标传送指令LEA7/21/202322>>微机原理<<4、标志传送指令标志送AH指令LAHFAH送标志寄存器低字节指令SAHF标志入栈指令PUSHF标志出栈指令POPF7/21/202323>>微机原理<<3.2.2算术运算类指令1.加法与减法指令
a,影响标志位
b,只能有一个操作数在存储器中
c,目的操作数不能采用立即寻址方法ADD DST,SRC
; DST《——DST+SRCADC DST,SRC
; DST《——DST+SRC+CFSUB DST,SRC
; DST《——DST-SRCSBB DST,SRC
; DST《——DST-SRC-CFNEG DST
; DST《——0-DST,即取补7/21/202324>>微机原理<<ADD AX,[SI];完成16位数据的加法运算;SRC在存储器中;DST是CPU中的AX寄存器例:SBB CX,DATA1;完成16位数据的减法运算;SRC在存储器中;DST是CPU中的CX寄存器例:7/21/202325>>微机原理<<2.比较指令CMP DST,SRC
;DST-SRC,结果不保留;只影响标志位例:CMP AX,BXa、作为无符号数时,比较后的大小由CF和ZF决定:
ZF=1:则AX=BXZF=0,CF=0:则AX>BX ZF=0,CF=1:则AX<BXb、作为带符号数时,比较后的大小由SF、ZF和OF决定:
ZF=1:则AX=BX OF异或SF=0:则AX≥BX OF异或SF=1:则AX<BX7/21/202326>>微机原理<<例: MOV AX,003AH; 0000000000111010 MOV BX,8003H; 1000000000000011 CMP AX,BX; 1000000000110111影响标志位:CF=1,OF=1,ZF=0,SF=1,PF=0,AF=0作为无符号数时,CF=1,则AX<BX003AH小于8003H作为带符号数时,OF异或SF=0,则AX≥BX
正数大于负数7/21/202327>>微机原理<<3.增量减量指令影响除CF以外的所有状态标志,只有一个操作数DST,可以是8位也可以是16位操作数。常用来修改计数器的计数指针。INC DST;DST+1——》DSTDECDST;DST-1——》DST例:INC AX;AX+1——》AX7/21/202328>>微机原理<<4、乘法与除法指令只有一个操作数SRC,且不可以是立即数。IMULSRC
;符号数的乘法;字节运算时,AL×SRC—》AX
;字运算时,AX×SRC—》DX与AXMULSRC
;无符号数的乘法,其它同上IDIVSRC
;符号数除法;字节运算时:AX÷SRC的商—》AL
;AX÷SRC的余数—》AH
;字运算时:DX:AX÷SRC的商—》AX
;DX:AX÷SRC的余数—》DXDIVSRC
;无符号数除法,其它同上7/21/202329>>微机原理<<(1)乘法运算后,标志位的使用:
CF=OF=1,说明结果为一个字或双字。
CF=OF=0,说明结果为一个字节或字,无符号数时,高字(高字节)全为0;符号数时,高字(高字节)仅是低字(低字节)的符号扩展(2)除法结果的标志位无意义。(3)除数为0或商溢出时,除法结果无意义,并引起溢出中断。注意:7/21/202330>>微机原理<<5,符号扩展指令CBW ;将AL中的字节数符号扩展成AX中的字.CWD ;将AX中的字符号扩展成DX与AX中的双字.
扩展时:正数扩0,负数扩1已知AL=85H,BX=0345H,求BX+AL的和执行 CBW ;85H是负数,得到AX=0FF85H ADD AX,BX;0FF85H+0345H=02CAH
得到AX=02CAH例7/21/202331>>微机原理<<6,BCD数调整指令操作数使用隐含寻址,且规定为AL或AX(1)针对组合BCD数组合BCD数的加法调整指令,半字节1位BCD相加,超过9或有进位,要加6调整,低半字节调整后有进位,高半字节再调整。表示为:若AL&0FH>9或AF=1,则AL+6AL,1AF
若AL&0F0H>90H或CF=1,则AL+60HAL,1CFDAA
①7/21/202332>>微机原理<<(1)针对组合BCD数组合BCD数的减法调整指令,半字节1位BCD相减,有借位,要减6调整。表示为:若AL&0FH>9或AF=1,则AL-6AL,
1
AF若AL>9FH或CF=1,则AL-60HAL,
1
CF
DAS
②7/21/202333>>微机原理<<(1)针对分离BCD数AAA分离BCD数的加法调整指令,只取低半字节,其余同组合BCD数。表示为:若AL&0FH>9或AF=1,则AL+6AL,AH+1AH,1AF;AFCF,AL&0FHAL
(只取低4位)
①7/21/202334>>微机原理<<(1)针对分离BCD数AAS分离BCD数的减法调整指令,只取低半字节,其余同组合BCD数。表示为: 若AL&0FH>9或AF=1,则AL-6AL,AH-1AH,1AF;AFCF, AL&0FHAL
(只取低4位)②7/21/202335>>微机原理<<(1)针对分离BCD数AAM分离BCD数的乘法调整指令,两个BCD数相乘,结果在AL中,除以10后商在AH中,余数在AL中。表示为:AL/0AHAH
(商)
ALMOD0AHAL
(余)③7/21/202336>>微机原理<<(1)针对分离BCD数AAD分离BCD的除法调整指令,先将两个BCD码转为一字节二进制(用高位*10+低位),得到被除数放于AL中,并把AH清零,运算后,商->AL,余数->AH表示为: AH*0AH+ALAL,0AH;先调整再做除法,商到AL中,余数到AH中。④7/21/202337>>微机原理<<3.2.3位操作指令1、逻辑运算类指令:
参与运算的操作数可以是字节或字AND DST,SRC;DST∧SRCDST,清CF、OF
;根据结果置SF、ZF和PF,标志AF不定OR DST,SRC;DST∨SRCDST,标志位设置同上XOR DST,SRC;DST异或SRC-DST,标志位设置同上TESTDST,SRC;DST∧SRC,仅置标志位,标志位设置同上NOT DST ;DST中各位取反DST,不影响标志位7/21/202338>>微机原理<<OR CL,03H;置位CL的D0、D1AND AL,0F5H;清AL的D1、D3XOR AH,0FH; AH的低半字节取反TESTAL,02H;判断AL的D1是否为0,;是,ZF=1,否则,ZF=0XOR AL,TEST_CODE;当AL与TEST_CODE相同时,ZF=1,否则,ZF=0逻辑运算指令经常用来对寄存器或存储单元的某些位进行置位(1)或者清零(0)的操作。例:7/21/202339>>微机原理<<2、移位指令:
按位进行从左到右或从右到左的移位。以下CNT
表示移位的次数。SHR DST,CNT;逻辑右移SHL/SALDST,CNT;逻辑/算术左移SAR DST,CNT;算术右移7/21/202340>>微机原理<<3、循环移位指令:ROR DST,CNT; 循环右移ROL DST,CNT; 循环左移RCRDST,CNT; 带进位循环右移RCLDST,CNT; 带进位循环左移a,移位指令影响AF外的各状态标志位.b,循环移位指令只影响CF、OFc,CNT可以为立即数1或者寄存器CL(预先设置移位次数):当CNT=1时,OF=0表示移位前后DST的最高位相同,OF=1,
表示不同;当CNT>1时,OF无意义.7/21/202341>>微机原理<<(1)串传送:(DS:SI)--》(ES:DI),隐含寻址,不影响标志位。MOVSW
;字传送:SI±2—》SI,DI±2—》DIMOVSB
;字节传送:SI±1—》SI,DI±1—》DI(2)串比较:(DS:SI)-(ES:DI),隐含寻址,仅影响标志位。CMPSW
;字比较:SI±2—》SI,DI±2—》DICMPSB
;字节比较:SI±1—》SI,DI±1—》DI(3)串扫描:隐含寻址,仅影响标志位。SCASW
;字扫描:AX-(ES:DI),DI±2—》DISCASB
;字节扫描:AL-(ES:DI),DI±1—》DI3.2.4串操作指令与重复前缀7/21/202342>>微机原理<<(4)串取出:隐含寻址,不影响标志位。LODSW
;字取出:(DS:SI)-》AX,SI±2-》SILODSB
;字节取出:(DS:SI)-》AL,SI±1-》SI(5)串存储:隐含寻址,不影响标志位。STOSW
;字存储:AX—》(ES:DI),DI±2—》DISTOSB
;字节存储:AL—》(ES:DI),DI±1—》DI7/21/202343>>微机原理<<6、串操作可以加重复前缀使得其连续执行多次REPMINST;当CX≠0时,重复执行MINST,且CX-1—》CX
;MINST是MOVS或STOS指令REPE/REPZCINST;当CX≠0且ZF=1时,重复执行CINST
;且CX-1—》CX,CINST是CMPS或SCASREPNE/REPNZ CINST;当CX≠0且ZF=0时,重复执行CINST;
且CX-1-》CX,CINST是CMPS或SCAS7/21/202344>>微机原理<<串操作类指令可以与重复前缀配合使用,从而操作得以重复执行,并在条件符合时停止执行。无LODSREPE/REPZREPNE/REPNZ
SCASREPE/REPZREPNE/REPNZ
CMPSREPMOVS可添加的重复前缀
REP
STOS
串操作指令
7/21/202345>>微机原理<<转移类指令可以改变代码段寄存器CS与指令指针IP的值或仅改变IP的值,从而可以以改变指令执行的顺序,以满足程序分支或跳转的需要。3.2.5控制转移指令1.无条件转移、调用和返回指令(1)无条件转移指令JMP格式:JMPOPRD;OPRD是转移的目的地址功能:转移到目的地址所指示的指令去执行。7/21/202346>>微机原理<<直接转移短程转移近程转移远程转移JMPSHORTOPRD;IP=IP+8位位移量,目的地址与JMP指令所处地址的距离在-128~127范围之内。近程转移:JMPNEARPTROPRDIP=IP+16位位移量,NEAR可省略,目的地址与JMP指令处于同一地址段范围之内。JMPFARPTROPRDIP=OPRD的段内位移量CS=OPRD所在段地址。直接转移的3种形式:
7/21/202347>>微机原理<<间接转移指令的目的地址可以由存储器或寄存器给出,有以下2种形式:①段内间接转移:JMPWORDPTROPRD;IP=[EA](由OPRD的寻址方式确定)例如:JMPWORDPTR[BX];IP=[DS×16+BX]JMPWORDPTRBX;IP=BX②段间间接转移:JMPDWORDPTROPRD;IP=[EA],CS=[EA+2]该指令指定的双字节地址指针的第一个字单元内容送IP,第二个字单元内容送CS。例如:JMPDWORDPTR[BX+SI]7/21/202348>>微机原理<<(2)调用和返回功能:调用CALL指令用来调用一个过程或子程序。调用指令格式如下:①段内调用:CALLNEARPTROPRD操作:SP=SP-2,(SP+1,SP)=IP,IP=IP+16位位移量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学生社会实践与专业技能结合的案例分析
- 2025企业租赁合同
- 2025短期(临时)员工合同书
- 天然气管道工程的安全风险管理与控制
- 2025年新能源扫路车项目发展计划
- 2025建筑工程劳务分包合同范本
- 婚宴菜品品质提升方案
- 2025深圳的房屋租赁合同范本
- 如何用创新性思维去解读学术领域的变化与趋势
- 2025建筑拆除承包合同
- 2025年辽宁医药职业学院单招职业技能考试题库附答案
- 2025年度测绘资质借用合作协议书
- 2023年贵州省三支一扶考试真题
- 舞台剧联合投资协议书范本
- 《食品卫生安全知识培训》课件
- 江苏教育报刊总社公开招聘4人高频重点提升(共500题)附带答案详解
- (一模)乌鲁木齐地区2025年高三年级第一次质量语文试卷(含答案)
- 2025年中国工艺(集团)公司招聘笔试参考题库含答案解析
- 2024年第四季度 国家电网工程设备材料信息参考价
- (八省联考)内蒙古2025年高考综合改革适应性演练 化学试卷(含答案逐题解析)
- 化验室用气瓶管理制度(3篇)
评论
0/150
提交评论