80x86汇编指令详解

80x86汇编指令详解

ID:12311348

大小:544.00 KB

页数:31页

时间:2018-07-16

80x86汇编指令详解_第1页
80x86汇编指令详解_第2页
80x86汇编指令详解_第3页
80x86汇编指令详解_第4页
80x86汇编指令详解_第5页
资源描述:

《80x86汇编指令详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、80x86汇编指令详解(上)2008年01月15日星期二15:0580x86指令系统,指令按功能可分为以下七个部分。  (1)数据传送指令。  (2)算术运算指令。  (3)逻辑运算指令。  (4)串操作指令。  (5)控制转移指令。  (6)处理器控制指令。  (7)保护方式指令。  3.3.1数据传送指令  数据传送指令包括:通用数据传送指令、地址传送指令、标志寄存器传送指令、符号扩展指令、扩展传送指令等。  一、通用数据传送指令  1传送指令  传送指令是使用最频繁的指令,格式:MOVDEST,SRC  功能

2、:把一个字节,字或双字从源操作数SRC传送至目的操作数DEST。  传送指令允许的数据流方向见图311。图3.11 传送指令数据流  由上图可知,数据允许流动方向为:通用寄存器之间、通用寄存器和存储器之间、通用寄存器和段寄存器之间、段寄存器和存储器之间,另外还允许立即数传送至通用寄存器或存储器。但在上述传送过程中,段寄存器CS的值不能用传送指令改变。  例3.12CPU内部寄存器之间的数据传送。  MOVAL,DH    ;AL←DH    (8位)  MOVDS,AX    ;DS←AX    (16位)  MO

3、VEAX,ESI   ;EAX←ESI   (32位)  例3.13CPU内部寄存器和存储器之间的数据传送。  MOV[BX],AX      ;间接寻址     (16位)  MOVEAX,[EBX+ESI]   ;基址变址寻址   (32位)  MOVAL,BLOCK     ;BLOCK为变量名,直接寻址(8位)例3.14立即数送通用寄存器、存储器。  MOVEAX,12345678H   ;EAX←12345678H   (32位)  MOV[BX],12H     ;间接寻址      (8位)  MOV

4、AX,1234H;AX←1234H(16位)  使用该指令应注意以下问题:  ·源和目的操作数不允许同时为存储器操作数;  ·源和目的操作数数据类型必须一致;  ·源和目的操作数不允许同时为段寄存器;  ·目的操作数不允许为CS和立即数;  ·当源操作数为立即数时,目的操作数不允许为段寄存器;  ·传送操作不影响标志位。  2扩展传送指令  格式:MOVSX DEST,SRC     MOVZX DEST,SRC  功能:将源操作数由8位扩展到16位送目的操作数,或由16位扩展到32位送目的操作数。其中MOVSX是

5、按有符号数扩展,MOVZX是按无符号数扩展。无符号数或正数高位扩展为0,负数高位扩展为全“1”。  例3.15带符号数扩展  MOVBL,80H  ; -128  MOVSXAX,BL  ; 将80H扩展为FF80H后送AX中。  例3.16无符号数扩展  MOVBL,80H  ; 128  MOVZXAX,BL  ; 将80H扩展为0080H后送AX中。  使用该指令应注意以下问题:  ·目的操作数应为16位或32位通用寄存器;  ·源操作数长度须小于目的操作数长度,为8位或16位通用寄存器或存储器操作数;  ·

6、扩展传送操作不影响标志位。  3交换指令  (1)格式:XCHGOPR1,OPR2  功能:交换操作数OPR1和OPR2的值,操作数数据类型为字节、字或双字。允许通用寄存器之间,通用寄存器和存储器之间交换数据。  例3.17  XCHGAX,BX;通用寄存器之间交换数据(16位)  XCHGESI,EDI;通用寄存器之间交换数据(32位)  XCHGBX,[SI];通用寄存器和存储器之间交换数据(16位)  XCHGAL,[BX];通用寄存器和存储器之间交换数据(8位)  使用该指令应注意以下问题:  ·操

7、作数OPR1和OPR2不允许同为存储器操作数;  ·操作数数据类型必须一致;  ·交换指令不影响标志位。  如要实现存储器操作数交换,可用如下指令实现:               MOVAL,BLOCK1               XCHGAL,BLOCK2               MOVBLOCK1,AL  (2)格式:BSWAPREG  功能:将32位通用寄存器中,第1个字节和第4个字节交换,第2个字节和第3个字节交换。例3.18  MOVEAX,44332211H  BSWAPEAX;EAX=1122

8、3344H  使用该指令应注意以下问题:  ·操作数为32位通用寄存器;  ·交换指令不影响标志位。  二、堆栈操作指令  1压栈指令  (1)格式:PUSHSRC  功能:将源操作数压下堆栈,源操作数允许为16位或32位通用寄存器、存储器和立即数以及16位段寄存器。当操作数数据类型为字类型,压栈操作使SP值减2;当数据类型为双字类型,压栈操作使SP值减4。

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

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

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