汇编--7 数据处理

7.1汇编语言中数据位置的表达

7.1.1 idata立即数
对于直接包含在机器指令中的数据(执行前在cpu指令缓冲器中),在汇编语言中成为立即数,在汇编指令中直接给出。比如:mov ax,1

7.1.2寄存器
指令要处理的数据存在寄存器中,汇编指令给出相应的寄存器名称

7.1.3段地址(SA)和偏移地址(EA)
指令要处理的数据在内存中,在汇编指令中可用[X]的格式给出EA,SA在 段寄存器中
存放段地址的寄存器可以是默认的也可以是显性给出的(es:[si])

7.2处理数据的长度
(1)通过寄存器名指定处理数据的长度
(2)在没有寄存器名的情况下,用操作符X ptr指明内存单元的长度,X在汇编指令中可以为word和byte
例如 mov byte ptr [1000H],1 这时候的1就是01H 而不是 00001H

8.1[…]内存寻址方向
只有 bx,si,di,bp四个寄存器可以用【….】的方式进行内存单元的寻址,但这四个寄存器只能以4中方式出现
(1)bx si
(2)bx di
(3)bp si
(4)bp di
另外这4中组合方式都能和立即数idata组合。
只要在寄存器bp,如果指令中没有显示的给出段地址,段地址默认在ss中。

8.2指令处理的数据有多长
指令mov [bx],1 我们无法得知1是一字节还是两个字节 ,所以我们要知道[bx]代表一个字节大小的内存还以一个字大小的内存 ,我们用X ptr指明内存单元长度
mov word ptr ds:[0],1 这时1是两个字节大小
mov byte ptr ds:[0],1 这时1是一字节大小
inc byte ptr[bx],

8.3div指令
div指令要注意两个问题
(1) 除数:有8位和16位两种,在一个reg或内存单元中
(2)被除数:默认放在AX或AX和DX中,如果除数为8位,被除数则为16位,默认存在AX中;如果除数为16位,被除数则为32位,在DX和AX中存放,DX存放高16位,AX存放低16位。
(3)结果:如果除数为8位,则AL存储除法操作的商,AH存储除法操作的余数;如果除数为16位,则AX存储除法操作的商,DX存储除法操作的余数。
格式:
div reg
div 内存单元

8.4伪指令dd
dd用来定义双字型数据 dd 1,这个1占两个字

8.5dup
db 3 dup (0)相当于定义了3个字节型数据0
bd 3 dup(0,1,2)定义了0,1,3三个字节型数据
db 重复的次数 dup(重复的字节型数据)
dw 重复的次数 dup(重复的字型数据)
dd 重复的次数 dup(重复的双字型数据)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值