汇编语言入门:学习简单指令和数据段
2018-02-14 13:16
369 查看
本章围绕 “mov”、”add”、”sub”指令展开讲解,旨在为后续学习更高级的语法和指令做一个好的铺垫 :)
可以将一组长度为N(N≤64)、地址连续、起始地址为16倍数的内存单元当作专门存储数据的内存空间,从而定义了一个数据段
比如用123B0H~123B9H这段空间来存放数据:
段地址:123BH
长度:10字节(偏移地址从0开始数)
比如,现将123B0H~123BAH的内存单元定义为数据段;要累加这个数据段的前三个单元的数据,代码如下:
上面因为寄存器AL默认存储8位数据,所以用于累加前三个字节的数据;如果要累加前三个字型数据,把上面AL换成AX并每次偏移地址加2(而非1,因为一个字型数据占两个字节,所以偏移地址分别为0、2、4)即可
mov指令
已学的mov指令的几种形式:
mov 寄存器 立即数
mov 寄存器 寄存器
mov 寄存器 内存单元
mov 内存单元 寄存器
mov 段寄存器 寄存器(段寄存器是特殊的寄存器)
add指令、sub指令
类比mov指令,
add指令和
sub指令也都有两个操作对象
add 寄存器 立即数
add 寄存器 寄存器
add 寄存器 内存单元
add 内存单元 寄存器
sub 寄存器 立即数
sub 寄存器 寄存器
sub 寄存器 内存单元
sub 内存单元 寄存器
数据段(温故知新)
对于8086PC机,我们可以根据需要将一组内存单元定义为一个段(可以是代码段、数据段等,前面讲过)可以将一组长度为N(N≤64)、地址连续、起始地址为16倍数的内存单元当作专门存储数据的内存空间,从而定义了一个数据段
比如用123B0H~123B9H这段空间来存放数据:
段地址:123BH
长度:10字节(偏移地址从0开始数)
比如,现将123B0H~123BAH的内存单元定义为数据段;要累加这个数据段的前三个单元的数据,代码如下:
mov AX, 123BH mov BX, AX ; mov AL, 0 #初始化al,用于存放数据 ; add AL[0] #存放第一个数据——以上两步骤可以用下面一步代替 mov AL, [0] #[0]内存的数据覆盖al的原始数据,al中保存第一个单元的值 add AL, [1] add AL, [2]
上面因为寄存器AL默认存储8位数据,所以用于累加前三个字节的数据;如果要累加前三个字型数据,把上面AL换成AX并每次偏移地址加2(而非1,因为一个字型数据占两个字节,所以偏移地址分别为0、2、4)即可
相关文章推荐
- 转移指令的原理03 - 零基础入门学习汇编语言45
- [BX]和loop指令02 - 零基础入门学习汇编语言24
- 转移指令的原理04 - 零基础入门学习汇编语言46
- [BX]和loop指令02 - 零基础入门学习汇编语言24
- 转移指令的原理04 - 零基础入门学习汇编语言46
- int指令03 - 零基础入门学习汇编语言66
- int指令01 - 零基础入门学习汇编语言64
- int指令03 - 零基础入门学习汇编语言66
- [BX]和loop指令04 - 零基础入门学习汇编语言26
- int指令01 - 零基础入门学习汇编语言64
- 转移指令的原理01 - 零基础入门学习汇编语言43
- [BX]和loop指令04 - 零基础入门学习汇编语言26
- 转移指令的原理01 - 零基础入门学习汇编语言43
- [BX]和loop指令06 - 零基础入门学习汇编语言28
- [BX]和loop指令05 - 零基础入门学习汇编语言27
- 转移指令的原理05 - 零基础入门学习汇编语言47
- [BX]和loop指令06 - 零基础入门学习汇编语言28
- 转移指令的原理02 - 零基础入门学习汇编语言44
- [BX]和loop指令03 - 零基础入门学习汇编语言25
- [BX]和loop指令05 - 零基础入门学习汇编语言27