首页 > 汇编语言 > 浮点数处理与指令编码
阅读:229
汇编语言单字节指令与立即操作数简述
没有操作数或只有一个隐含操作数的指令是最简单的指令。这种指令只需要操作码字段,字段值由处理器的指令集预先确定。下表列出了几个常见的单字节指令。
在这些指令中,INC DX 指令好像是不应该岀现的,它出现的原因是:指令集的设计者决定为某些常用指令提供独特的操作码。其结果是,为了代码量和执行速度要对寄存器增量操作进行优化。
下表列出了操作码使用的寄存器编号。
下面例子中出现的所有数值都为十六进制。
【示例 1】PUSH CX 机器指令为 51。编码步骤如下:
1) 带一个 16 位寄存器操作数的 PUSH 指令编码为 50。
2) CX的寄存器编码为1,因此1+50得到操作码为51。
【示例 2】MOV AX, 1 机器指令为 B8 01 00(十六进制)。编码过程如下:
1) 立即数送 16 位寄存器的操作码为 B8。
2) AX 的寄存器编号为 0,将 0 加上 B8(参见上表所示)。
3) 立即操作数(0001)按小端顺序添加到指令(01, 00 )。
【示例 3】MOV BX, 1234h 机器指令为 BB 34 12。编码过程如下:
1) 立即数送 16 位寄存器的操作码为 B8。
2) BX 的寄存器编号为 3,将 3 加上 B8 得到操作码 BB。
3) 立即操作数字节为 34 12。
从实践的角度出发,建议手动汇编一些 MOV 立即数指令来提高能力,然后通过 MASM 的源列表文件中的生成代码来检查汇编结果。
指令 | 操作码 | 指令 | 操作码 |
---|---|---|---|
AAA | 37 | LODSB | AC |
AAS | 3F | XLAT | D7 |
CBW | 98 | INC DX | 42 |
在这些指令中,INC DX 指令好像是不应该岀现的,它出现的原因是:指令集的设计者决定为某些常用指令提供独特的操作码。其结果是,为了代码量和执行速度要对寄存器增量操作进行优化。
立即数送寄存器
立即操作数(常数)按照小端顺序(起始地址为最低字节)添加到指令。首先关注的是立即数送寄存器指令,暂不考虑内存寻址的复杂性。将一个立即字送寄存器的 MOV 指令的编码格式为:B8+rw dw,其中操作码字节的值为 B8+rw,表示将一个寄存器编号(0〜7)与 B8 相加;dw 为立即字操作数,低字节在低地址。下表列出了操作码使用的寄存器编号。
寄存器 | 编号 | 寄存器 | 编号 |
---|---|---|---|
AX/A1 | 0 | SP/AH | 4 |
CX/CL | 1 | BP/CH | 5 |
DX/DL | 2 | SI/DH | 6 |
BX/BL | 3 | DI/BH | 7 |
下面例子中出现的所有数值都为十六进制。
【示例 1】PUSH CX 机器指令为 51。编码步骤如下:
1) 带一个 16 位寄存器操作数的 PUSH 指令编码为 50。
2) CX的寄存器编码为1,因此1+50得到操作码为51。
【示例 2】MOV AX, 1 机器指令为 B8 01 00(十六进制)。编码过程如下:
1) 立即数送 16 位寄存器的操作码为 B8。
2) AX 的寄存器编号为 0,将 0 加上 B8(参见上表所示)。
3) 立即操作数(0001)按小端顺序添加到指令(01, 00 )。
【示例 3】MOV BX, 1234h 机器指令为 BB 34 12。编码过程如下:
1) 立即数送 16 位寄存器的操作码为 B8。
2) BX 的寄存器编号为 3,将 3 加上 B8 得到操作码 BB。
3) 立即操作数字节为 34 12。
从实践的角度出发,建议手动汇编一些 MOV 立即数指令来提高能力,然后通过 MASM 的源列表文件中的生成代码来检查汇编结果。
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频