汇编-王爽第三版学习笔记

Debug 命令

  1. ​查看、修改CPU中的寄存器内存:R命令
  2. 查看内存中的内容:D命令
  3. 修改内存中的内容:E命令(可以写入数据、指令,在内从中,他们实际上没有区别)
  4. 将内存中的内容解释为机器指令和对应的汇编指令:U命令
  5. 执行CS:IP修改的内存单元内容的指令:T命令
  6. 以汇编指令的形式向内存中写入指令:A命令

寄存器

reg(寄存器)的集合包括:
ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,di;
sreg(段寄存器)的集合包括:
ds,ss,cs,es​;​

  • ax:16位累加器;bx:16位基址寄存器;
  • cx:16位计数器;dx:16位数据寄存器;
  • sp:16位堆栈指针寄存器
  • bp:16位基址指针寄存器
  • si:16位变址寄存器
  • di:16位目的变址寄存器
  • ds:数据段寄存器
  • es:附加段寄存器
  • ss:堆栈段寄存器
  • cs:代码段寄存器

寻址

8086cpu中,只有这4个寄存器可以在"[…]"中来进行内存单元的寻址

比如下面的指令都是政确的:

mov ax,[bx]
mov ax,[bx+si]
mov ax,[bx+di]
mov ax,[bp]
mov ax,[bp+si]
mov ax,[bp+di]

下面的指令是错误的:

mov ax,[cx]
mov ax,[ax]
mov ax,[dx]
mov ax,[ds]

​​在[…]中,这4个寄存器可以单个出现,或者只能以4中组合出现:

bx+si;bx;di;bp+si;bp+di;
比如下面的指令是政确的:

mov ax,[bx]
mov ax,[si]
mov ax,[di]
mov ax,[bp]
mov ax,[bx+si]
mov ax,[bx+di]
mov ax,[bp+si]
mov ax,[bp+di]
mov ax,[bx+si+idata]
mov ax,[bx+di+idata]
mov ax,[bp+si+idata]
mov ax,[bp+di+idata]

下面的指令是错误的:

mov ax,[bx+bp]
mov ax,[si+di]

只要的[…]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在ss中。比如下面的指令:

mov ax,[bp] 含义:(ax)=((ss)*16+(bp))
mov ax,[bp+idata] 含义:(ax)=((ss)*16+(bp)+idata)
mov ax,[bp+si] 含义:(ax)=((ss)*16+(bp)+(si))

数据空间

​​看如下例子:
data segment
db 1
dw 1
dd 1
db 200 dup(0)
data ends
上例中:
db 表示1字节的数据空间
dw 表示2字节的数据空间
dd 表示4字节的数据空间
dup 表示重复初始值,200表示重复1个字节200次值为0的空间w欸

(div)除法

  • 8位除数
    参数:ax=>被除数,reg/ptr=>除数(8b)
    结果:ah=>余数,ax=>商
  • 16位除数
    参数:dx=>被除数高16位,ax=>被除数低16位,reg/ptr=>除数(16b)
    结果(16位除数):dx=>余数,ax=>商
  • 解决除法溢出问题
    参数:dx => 被除数高位,ax => 被除数低位,cx => 除数
    结果:dx => 结果高位,ax => 结果低位,cx => 余数

(mul)乘法

  • 8位乘数
    参数:al=>乘数(8b),reg/ptr=>乘数(8b)
    结果:ax(16b)
  • 16位乘数
    参数:ax=>乘数(16b),reg/ptr=>乘数(16b)
    结果:dx=>结果高位,ax=>结果低位
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值