【笨鸟先飞 汇编挖坑】第八天

数据处理的两个基本问题

8086为例

待处理数据的寻址

寻址方式汇总

  • 直接寻址: [idata]
  • 寄存器间接寻址: [bx] [si] [di] [bp]
  • 寄存器相对寻址: [bx+idata] [si+idata] [di+idata] [bp+idata]
  • 基址变址寻址: [bx+si] [bx+di] [bp+si] [bp+di]
  • 相对基址变址寻址: [bx+si+idata]等等

数据长度

  • 寄存器名指明处理数据的尺寸
    16位寄存器AX 字单位
    8位寄存器AL 字节单位
  • 操作符 X ptr 指明尺寸
    word ptr 字单元
    byte ptr 字节单元
  • 其他方法
    有些指令默认尺寸,例如push pop 只进行字操作

div除法指令

16位(AX)32位(DX+AX)
8位16位
AL(商)AH(余数)AX(商)DX(余数)

div reg
div 内存单位
后面的都是分母储存位置

  • div byte ptr ds:[0]
    结果:(al)=(ax)/((ds)*16)的商
    (ah)=(ax)/((ds)*16)的余数
  • div word ptr es:[0]
    结果:(ax)=[(dx)*16+(ax)]/((es)*16)的商
    (dx)=[(dx)*16+(ax)]/((es)*16)的余数

dup操作符

与db dw dd配合使用
用于数据重复
xx 重复次数 dup (重复数据类型)

  • dd 3 dup (0)
    定义12个字节都为 0
  • dw 3 dup (0,0,0)
    定义18字节都为0
  • db 2 dup (0,0)
    定义4个字节都为0
  • 0
    点赞
  • 0
    收藏 更改收藏夹
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

得有个名

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值