指令系统(数据传送类)_第1页
指令系统(数据传送类)_第2页
指令系统(数据传送类)_第3页
指令系统(数据传送类)_第4页
指令系统(数据传送类)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

●8086指令系统按功能可分为6大类:数据传送指令算术运算指令逻辑指令串处理指令控制转移指令处理机控制指令指令系统教学进程立即数存储器通用寄存器AX

BXCXDXBPSPSIDI段寄存器CSDSESSS数据传送指令

1.通用数据传送指令(1)数据传送MOV指令●指令功能:将数据从源操作数传送到目的操作数,具有“复制”性质;●指令格式:MOVDST,SRC;

MOV为指令助记符,DST、SRC分别为目的操作数和源操作数例如:MOV AX,1234H;立即数1234H送AXMOV AL,CL;通用寄存器CL中内容送ALMOV指令源、目标操作数长度必须一致,即两者同为8位或同为16位;目的操作数DST不能为立即数;DST、SRC不能同时为段寄存器,也不能同时为存储器单元;不能使用此指令为代码段寄存器CS以及指令指针IP赋值;

MOV指令不影响标志位寄存器的值。注意1)2)3)4)5)例:判断指令的对错MOVAX,DSMOV10H,[SI]MOVCS,AXMOVDS,2000HMOV[3567H],56HMOVAL,[4567H]MOVBP,[9886H]MOV[3000H],[BX]MOVBX,CLMOVSS,[5678H]●

1.通用数据传送指令●指令功能:将一个字节或一个字的源操作数和目的操作数相交换;●指令格式:XCHG OPR1,OPR2;执行操作:OPR1↔OPR2;

两个操作数必须有一个在寄存器(不包括段寄存器)中;XCHG交换指令不影响标志寄存器的值。注意1)2)(2)交换指令XCHG(3)堆栈操作指令●

1.通用数据传送指令●堆栈操作指令分为两类:进栈(压栈)指令PUSH和出栈指令POP●压栈指令格式为:PUSHSRC;执行的操作:SP←(SP)-2(SP)+1,(SP)←(SRC)●出栈指令格式为:

POPDST;执行的操作: DST←((SP)+1,(SP)) SP←(SP)+2;

堆栈指令必须是16位双字节数,即每进行一次PUSH操作,SP减2;每进行一次POP操作SP加2;目的操作数DST,与原操作数SRC都不能为立即数;DST不能为代码段寄存器CS;堆栈指令不影响标志寄存器的值。注意1)2)3)4)5)PUSHAXPUSHBLPUSHCSPUSHBPPOPCSPUSH5678HPOPDSPOPCHPOPBXXCHGAX,BXXCHGBL,[SI]XCHGDS,BXXCHG[BX],[DI]XCHGAX,BLXCHG[6788H],DX判断指令的对错●2.累加器专用传送指令(1)输入/输出指令●指令功能:输入/输出指令用来完成I/O端口与累加器之间的数据传送;●指令格式: INAL,n INAX,n INAL,DX INAX,DX;执行操作:OUTn,ALOUTn,AXOUTDX,ALOUTDX,AX(n)AL,B(n)AL,(n+1)AH,W((DX))AL,((DX)+1)AH,W;((DX))AL,BnAX,WnAL,B(DX)AL,B(DX)AX,W例:INAL,08H前:(08H)=34H,DS=2000H(20008H)=78H后:AL=?34H例:INAL,DX前:(DX)=2345H,(DS)=2000H,(22345H)=78H,(2345H)=34H后:AL=?34HINAX,[32H]INBX,56HINAL,5678HINAX,45HINAL,[DX]INAL,DXOUTDX,ALOUT[45H],AXOUT4578H,AXOUT67H,AX判断指令的对错●指令功能:以(BX)为基,(AL)为索引,将索引到的值返回到AL中。●指令格式:XLAT

执行操作:AL←((BX)+(AL))

(2)查表指令XLAT表的首地址置于BX中,AL中存放对象在表中的相对地址。表中的内容则是所需要转换的代码,表的长度不得超过256个字节。指令执行后,所查找的对象自动存于AL中,BX内容保持不变。XLAT的操作数是隐含的,也可用表的首地址名称来表示。注意例:数字0~9对应的格雷码为13H,34H,05H,06H,09H,0AH,0CH,11H,12H,14H。依次放在内存以TABLE开始的区域,当#10H端口输入一个十进制数时,要求CPU将其转换为格雷码,再从#10H输出。MOVBX,TABLEINAL,10HXLATOUT10H,AL注:此程序有问题,请改正!●3.目标地址传送指令(1)LEA有效地址送寄存器●指令功能:将源操作数的偏移(有效)地址传送给16位寄存器;●指令格式:LEA REG,SRC;执行操作:

REG←SRC;源操作数的寻址方式为:存储器寻址目标操作数的寻址方式为:寄存器寻址(不包括段寄存器)例:LEABX,[2000H]后,(BX)=2000H区别于MOVBX,[2000H](2)数据段寄存器传送指令LDS●3.目标地址传送指令●指令功能:从源操作数所指定的存储单元开始取出4个字节的数,把低地址字单元的内容传送给目标操作数,高地址字单元的内容传送给DS段寄存器;●指令格式:LDS REG,SRC;

执行操作: REG←(SRC)

DS←(SRC+2);源操作数的寻址方式为:存储器寻址目标操作数的寻址方式为:寄存器寻址(不包括段寄存器)例:LDSSI,(2000H)前:(DS)=2000H,(22000H)=4000H,(22002H)=3000H后(SI)=4000H,(DS)=3000H(3)附加段寄存器传送指令LES●指令功能:从源操作数所指定的存储单元开始取出4个字节的数,把低地址字单元的内容传送给目标操作数,高地址单元的内容传送给ES段寄存器;●指令格式:LES

REG,SRC;

执行操作:

REG←SRC;

ES←(SRC+2);

目的操作数16位通用寄存器(REG)不能使用段寄存器;源操作数SRC只能使用存储器寻址方式来确定地址;地址传送指令不影响标志寄存器的值注意1)2)3)标志位传送指令●4.(1)LAHF指令(2)SAHF指令●指令功能:把标志寄存器的低8位送入寄存器AH;●指令格式:LAHF

执行操作:AH←(PSW低8位)●指令功能:与LAHF指令执行相反的操作,寄存器AH的相应位分别传送至标志位寄存器PSW的相应位中。(3)PUSHF指令●指令功能:把标志寄存器PSW的内容压栈;●指令格式:PUSHF

执行操作:SP←(SP)-2;

SP←(PSW低8位);

SP+1←(PSW高8位);(4)POPF指令●指令功能:与PUSHF指令执行相反的操作,将堆栈栈顶两个单元的内容弹出至标志寄存器。●指令格式:POPF

执行操作: PSW低8位←[SP];

PSW高8位←[SP+1];

SP←(SP)+2;例:试编程将TF置1。PUSHFMOVBP,SPOR[BP

温馨提示

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

评论

0/150

提交评论