11、数据传输、寻址与算术运算

数据传输、寻址与算术运算

1. 数据传输指令

1.1 引言

汇编语言与高级语言存在一个根本区别:在汇编语言中,必须了解数据存储和特定于机器的细节。像 C++ 和 Java 这样的高级语言编译器会对变量和赋值语句进行严格的类型检查,以帮助程序员避免因数据不匹配而产生的逻辑错误。而汇编器在声明和移动数据时提供了极大的自由度,它们几乎不进行错误检查,并提供了各种各样的运算符和地址表达式。但要获得这种自由,就必须在编写有意义的程序之前掌握大量的细节。如果能花时间彻底学习相关内容,后续的学习会更容易理解。随着示例程序变得越来越复杂,需要依赖对这些基础知识的掌握。

1.2 操作数类型

x86 指令格式可以进一步细分为零、一、二或三个操作数的格式:
- mnemonic
- mnemonic [destination]
- mnemonic [destination],[source]
- mnemonic [destination],[source-1],[source-2]

x86 汇编语言使用不同类型的指令操作数,最常用的有以下三种:
- 立即数:使用数字字面表达式。
- 寄存器:使用 CPU 中的命名寄存器。
- 内存:引用一个内存位置。

以下是操作数的简单表示法:
| 操作数 | 描述 |
| ---- | ---- |
| reg8 | 8 位通用寄存器:AH, AL, BH, BL, CH, CL, DH, DL |
| reg16 | 16 位通用寄存器:AX, BX, CX, DX, SI, DI,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值