版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.38086指令系统一台计算机所有指令的集合称为该机的指令系统,按照指令的功能可将指令分为以下6类:数据传送指令算术运算指令逻辑运算和移位指令 串操作指令程序控制指令处理器控制指令学习并掌握指令系统,是学习微机原理的基本要求,并在尽量多地理解8086指令的基础上,能够设计一些简单程序、以及能够读懂基本的源程序。13.3.1数据传送指令数据传送指令的功能是把数据或地址传送到寄存器或器中。器寄存器I/O端口数据传送指令又可细分为以下四种:通用传送类指令地址传送类指令标志传送类指令输入输出类指令21.通用传送指令(1) MOV传送指令1、传送方向2、()的含义格式:MOV操作:DSTDST,SRC
2、(SRC)说明:DST为目的操作数,SRC为源操作数。MOV指令传送的数据可以是字或字节,但SRC和DST的宽度必须一致,即同为字节或同为字;MOV指令不影响标志位。3MOV指令的数据传送方向器 CS 4DS、ES、SSAX、BX、CX、DX、 BP、SP、SI、DI立即数MOV指令传送举例立即数送通用寄存器通用寄存器与段寄存器互送MOVMOVBX,ESDS,AX立即数送单元MOVMOVAX,0210HMEM,27H段寄存器与单元互送MOVMOVDS,SI+2DI,ES通用寄存器送单元MOVMOVBX,AX4DI,AL单元送通用寄存器MOVMOVAX,MEM+5BL,BYTEPTR MEM+5
3、通用寄存器送通用寄存器设MEM定义为WORD型变量MOVMOVAX,BXDL,AL5MOV指令不允许规则:IP不能作目的寄存器不允许内存向内存传送不允许段寄存器向段寄存器传送 不允许立即数作为目的操作数不允许把立即数传送到段寄存器1)2)3)4)5)几个不能传送的解决方案:用AX作桥梁器器:MOVMOVAX,MEM1 MEM2,AX AX,DS ES,AX AX,DATADS,AX段寄存器段寄存器:MOVMOV段寄存器立即数:MOVMOV6(2)堆栈操作指令已经知道,堆栈是按“先进后出”方式工作的区域,并且以字为进行压入和弹出操作。为什么要设置堆栈?这也许是大家关心。7主程序主程序执行子程序1
4、执行子程序2执行子程序IPIP(下)IPIP(下)IPIP(下)继主续程执序行继主续程执序行继子续程执序行 1(a)(a) 主程序调子程序;(b)(b) 子程序嵌套示意图8堆栈由于其先进后出的工作特点,特别适合临时存放信息,如子程序返回地址、中断断点、以及现场信息等,也可以用它来传递参数。堆栈位于堆栈段中,SS存放其段地址,SP指向其栈顶。堆栈是由高地址向低地址生长的,进 栈操作使SP内容减小、出栈操作使SP内容增加。有两条指令来操作堆栈, PUSH 、POP ,PUSH为压栈指令,而POP为出栈指令。9压栈指令格式:PUSHsrc操作:把src内容压入堆栈说明:src为16位操作数例:PUS
5、H操作:SPAX(SP)- 2(SP)(AX)注意有()与无()的区别10可以压入堆栈的数据类型:PUSH PUSHPUSHAX BXDS;寄存器;单元;段寄存器不能压入堆栈的数据类型: PUSHImm;立即数例:交换AX、BX的内容。PUSH AXPUSHPOP POPBXAX BX11弹出指令格式:POPdst出到dst操作:把栈顶内说明:dst为16位操作数例:交换AX、BX内容。PUSH AX例: POP操作: BXSPBX( (SP) )(SP)+ 2PUSH POPPOPBX AXBX12堆栈指令使用时应注意几点:堆栈操作总是按字进行不能从栈顶弹出一个字给CS堆栈指针为SS:SP,
6、SP指向栈顶SP自动进行增减量操作(-2,+2)13(3)交换指令XCHG格式:XCHGdst,src功能:交换两操作数的内容。要求:两操作数中必须有一个在寄存器中;操作数不能为段寄存器和立即数;源和目地操作数类型要一致。XCHGXCHGAX,BX2000,CL举例:14(4)查表指令XLAT格式:XLAT功能:用于两代码之间的转换。操作:AL(BX)+(AL)查表指令又叫换码指令。指令执行前,先将表的首地址(偏移地址)送到BX中,表项序号存于AL中;指令执行后,AL的内容就是表中对应表项的内容(用序号换内容)。15器303132.394142.4546.例如:内存数据段有一张16进制数的AS
7、CII码表,设首地址为2000H。ASCII 表42000H 012在DS段中,并假设(DS)=4000H。如欲查出表中第11个代码,即十六进 制数B的ASCII码。MOV BX,2000H MOV AL,0BH XALT执行结果为:(AL)= 42H = B9ABH+0BHEF注意:转换表长度最大为256个表项十六进制数ASCII码表162.输入输出(I/O)指令8086的I/O地址与器地址独立编址,因此通用数据传送指令不能用于I/O操作。8086提供了门指令,实现I/O操作。I/O端口的专已经知道,8086/8088CPU有20位地址线,而真正用于输入输出寻址的有16位地址线,所以可端口有
8、216个(65536)。的I/O17输入指令 IN格式:IN acc,PORTIN acc,DX; PORT端0255; DX表示的端口范围达64K操作:acc( I/O PORT)说明:只限于用累加器AL或AX来传送信息。当I/O端口地址小于等于255时,可直接写在指令中,存放在DX; AL; AL否则,要把端IN AL,80H例如:(80H端口)(DX)INAL,DX18输出指令 OUT格式:OUT port,accOUT DX,acc操作: I/O PORT(acc)说明:只限于用累加器AL或AX来传送信息。当I/O端口地址小于等于255时,可直接写在指令中,存放在DX; (69H,68
9、H)否则,要把端例如:OUT 68H,AXOUT DX,AL(AX);(DX)(AL)193.地址传送指令求变量的偏移量8086共配置有三条地址传送指令。格式:LEA reg,memLDS reg,mem32;reg;regoffsetmem(mem32) (mem32+2) (mem32)(mem32+2);DSLES reg,mem32;reg;ES用途:LEA取单元的16位偏移地址;LDS从连续两个字中取地址指针,其中低字送reg,高字送DS;LES从连续两个字中取地址指针,其中低字送reg,高字送ES。要求:源操作数必须是一个内存操作数,目的操作数必须 是一个16位的通用寄存器。20例
10、如:定义变量如下TABLEDBDD DD10H, 20H,0200 1000H TABLEPOPO_1_2则可以有以下指令:DB定义字节变量 DD定义双字变量TABLELEABX,TABLE指令完成:BXoffsetLDSDI,PO_1指令完成: DSDI0200H1000HLESSI,PO_2指令完成: ESSITABLE的段地址TABLE的偏移地址21以下两条指令差别:LEA BX,BUFFER MOV BX,BUFFER前者表示将符号地址为BUFFER的单元的偏侈地单元中的内址取到BX 容取到BX后者表示将BUFFER以下两条指令等效:LEA BX,BUFFERMOV BX,OFFSET
11、 BUFFER其中OFFSET BUFFER表示器单元BUFFER的偏移地址。二者都可用于取器单元的偏移地址,但LEA指令可以取动态(运行时)的地址,OFFSET只能取静态(汇编时)的地址。224.标志传送指令8086共配置有四条标志传送指令: (1)读标志指令LAHF用途:LAHF把标志寄存器(PSW)低8位中的5个标志位传送到AH中的指定位,如下图所示:格式:LAHFD7D6D5D3D2D1D0D4AHPSWCFPFSFZFAFIFTFOF DFLAHF指令的功能23(2)设置标志指令SAHF用途:SAHF的功能与LAHF的功能正好相反,如图所示,把AH的内容传送到标志寄存器(PSW)的低
12、8位中。D7D6D5D3D2D1D0格式:SAHFD4AHFLAGCFAFPFZFSFOF DFIFTFSAHF指令的功能24(3)标志寄存器压栈指令PUSHF格式: PUSHFSP(SP)(SP) - 2(PSW)操作:把标志寄存器的内容压入堆栈。(4)标志寄存器出栈指令POPF格式: POPFPSWSP(SP)(SP)+2操作:把堆栈栈顶内出到标志寄存器。PUSHF和POPF指令用于保护和恢复标志寄存器内容。25PUSHF和POPF指令举例:PUSH PUSHPUSHFAXCX;保护标志寄存器内容;这要用到AX,CX以及PSWPOPFPOP CX POP AX;恢复标志寄存器内容注意:数据
13、传送指令中,除SAHF和POPF这两条指令外,其余指令均不影响标志位。26. . .3.3.2算术运算指令算术运算指令特点:用来执行加、减、乘、除四则算术运算。有二进制运算指令,有十进制运算指令。有双操作数指令,有单操作数指令。可进行字数据运算,可进行字节数据运算。按照运算功能分为3类:加减类指令乘除类指令十进制调整类指令271.加减类指令加减法类指令共有8条。 (1)不带进位的加法指令ADD格式:ADD操作:DST 例如:ADDADDADD ADDDST,SRC(DST) + (SRC) AL,30H AX,BX+20H CX,SI DI,200HADD指令对标志位(指状态标志)都有影响。2
14、8(2)带进位位的加法指令ADC格式:ADC操作:DSTDST, SRC(DST)+(SRC)+(CF)说明:ADC指令在形式上和功能上都有与ADD类似,只是还要加进位标志位CF的内容。例如:ADCADC ADCAL,68HAX,CX BX,DI;AL;AX;BX(AL)+68H+(CF) (AX)+(CX)+(CF)(BX)+(DI)+(CF)ADC指令对标志位(指状态标志)都有影响。29ADC指令主要用于多字节加法运算中例如:有两个4字节的无符号数相加:2C 56 F8 AC + 30 9E 47 BE = ?设被加数、加数分别存放在BUFFER1及BUFFER2区内,结果对位放回BUFFER1开始的两个如下页图所示。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京住房公积金管理中心公开招聘编外工作人员2人笔试模拟试题及答案解析
- 2026年聚碳酸酯二醇行业洞察报告及未来五至十年发展趋势报告
- 2026年安徽省通航控股集团有限公司社会招聘2人笔试模拟试题及答案解析
- 2026年百货零售行业市场调查研究及发展前景报告及未来五至十年市场渗透率与增量空间
- vte试题及答案解析(2025版)
- 2026年福建饲料行业洞察报告及未来五至十年发展趋势报告
- 2026年渔业产品批发行业发展趋势及投资前景报告及未来五至十年新兴市场与增量突破
- 成都新都投资集团有限公司2026年招聘投资管理岗等岗位(7人)笔试参考题库及答案解析
- 2026年生命动力按摩椅行业洞察报告及未来五至十年发展趋势报告
- 2026年竹制品制造行业趋势报告及未来五至十年新质生产力与高质量发展
- 2026哔哩哔哩营销通案
- 广东深圳市华睿欣能投资控股集团有限公司2026届校园招聘考试参考题库及答案解析
- 基于零知识证明的医疗数据共享安全协议
- 老年期痴呆课件
- 20大数据互联网金融电子商务创业项目营销活动推广模板
- 3.1伟大的改革开放 教案高中政治统编版必修一中国特色社会主义
- 羟考酮纳洛酮缓释片-临床用药解读
- DBJT15-60-2019 建筑地基基础检测规范
- 2025年晋江离婚协议书
- 药店医保处方管理制度
- 信息处理与社会责任试题及答案
评论
0/150
提交评论