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

数据处理的两个基本问题

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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值