指令系统(学习资料)

指令系统(学习资料)

ID:40208562

大小:714.50 KB

页数:49页

时间:2019-07-26

指令系统(学习资料)_第1页
指令系统(学习资料)_第2页
指令系统(学习资料)_第3页
指令系统(学习资料)_第4页
指令系统(学习资料)_第5页
资源描述:

《指令系统(学习资料)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、4.1.38086/8088指令系统8086/8088CPU指令系统包含有133条基本指令。按其功能可以分为6类,它们是:⑴数据传送类指令⑵算术运算类指令⑶逻辑运算与位移类指令⑷字符串指令⑸控制转移类指令⑹处理器控制类指令。一、数据传送类指令数据传送类指令时将数据、地址或立即数传送到寄存器或存储器单元中。可完成寄存器与寄存器之间、寄存器与存储器之间、寄存器与I/O端口之间的字节或字传送。它又可分为通用数据传送指令、输入/输出指令、目标地址传送指令和标志传送指令四组。特点:除SAHF和POPF不影

2、响标志寄存器内容。(一)通用数据传送指令1.最基本的传送指令指令格式及操作:MOVdst,src;(dst)←(src)将源操作数s指定的内容送到d目的操作数dst是目的操作数,它可以是存储器、通用寄存器(不能为IP)和段寄存器(不能为CS),不能为立即数。Src是源操作数,它可以是存储器、通用寄存器、段寄存器和立即数。需说明一点,对于代码段寄存器CS和指令指针寄存器IP,通常无需用户利用传送指令改变其中的内容。但是CS可以作为源操作数。16位通用寄存器AXBXCXDXBPSPSIDIALBLC

3、LDLAHBHCHDH段寄存器CSDSSSES存储器立即数16位816位816位816位MOV指令数据传送方向MOVE指令需要注意的问题:①MOVE指令可传送8位数据,也可传送16位数据。②MOVE指令中的两操作数s和d,必用1个寄存器,不允许同时为存储单元。③不能用CS和IP做目的操作数。④不允许段寄存器之间直接数据传送。⑤不允许立即数做目的操作数。⑥不能向段寄存器送立即数。2.堆栈操作指令堆栈操作指令是用来完成压入和弹出堆栈操作的。8086/8088指令系统中提供了完成这两种操作的相应

4、指令。⑴压入堆栈指令指令格式及操作:PUSHsrc;(SP)←(SP)-2,((SP)+1:(SP))←(src)src源操作数可以是寄存器操作数和存储器操作数,且必须是16位的操作数,但不能是立即数。⑵弹出堆栈指令指令格式及操作:POPdst;(dst)←((SP)+1:(SP)),(SP)←(SP)+2dst目的操作数可以是寄存器操作数和存储器操作数,且必须是16位的操作数,但不能是立即数。特点:①s和d可以是16位寄存器或存储器两相邻单元;②堆栈按字操作;③每执行一条入栈指令,堆栈地址指针

5、SP减2,入栈的数据位于栈顶;④高位字节先入栈,放在高位地址单元,低位字节后入栈,放在较低地址单元;先进先出原则;⑤执行弹出指令时,过程相反,栈顶指针的值加2;⑥CS段寄存器的值可以入栈,但不能反过来弹出一个字到CS3.交换指令将源操作数和目的操作数(字或字节)相互对应交换位置。指令格式及操作:XCHGopr1,opr2;(opr1)←→(opr2)4.字节转换指令通过查表来完成代码转换,用于实现字节翻译的功能。指令格式及操作:XLATsrc_table;(AL)←((BX)+(AL))XLAT

6、指令是用来将一种字节代码转换成另一种字节代码。执行的结果放在AL中。使用指令前:BX寄存器的内容指向表格首址;AL中存放待查的码,即某一项与表首地址的距离。XLAT指令还可以有以下几种表示形式:XLAT;不写操作数XLATB;有B就不允许再写操作数。XLATES:src_table;重设段寄存器为ES[例]在内存的数据段有一张16进制数的ASCII码表,其首地址为Hex_table,如下图所示,为了查出第10个元素,即十六进制数A的ASCII码,则可用以下几条指令实现:MOVBX,OFFSETH

7、ex_tale;(BX)←表首址MOVAL,0AH;(AL)←序号XLATHex_table;查表转换61000H61001H61002H6100AH6100BH6100FH60000HDS:60000HBX:1000HAX:000AH+6100AHHex_tableHex_table+1Hex_table+2Hex_table+AHex_table+BHex_table+FASCII表31H32H41H42H30H46H………0AHALEA6100AH41H41HASCII表Hex_table

8、=1000H(二)输入/输出指令只能用累加器作为执行I/0数据传送的机构。输入输出指令可以分为两大类:一类是直接端口地址的输入/输出指令:一类是通过DX寄存器间接端口地址的输入/输出指令。⑴输入指令①直接寻址的输入指令寻址范围0-255(少于8位地址)指令格式及操作:INacc,port;(acc)←(port)②间接寻址的输入指令寻址范围0-65535(少于或超过8位地址)指令格式及操作:INacc,DX;(acc)←((DX))⑵输出指令①直接寻址的输出指令指令格式及操作:OUTport,a

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。