您的位置:首页 > 其它

汇编语言学习笔记4(王爽)

2018-01-24 11:25 411 查看

[BX]和Loop

BX

[bx]类似[0]也表示一个内存单元,偏移地址默认在ds中。
eg:mov ax,[bx]表示将长度为2个字节的内存单元内容送人ax, mov al,[bx]表示将长度为1个字节的内存单元内容送人ax。

Loop

loop指令格式:CPU执行到loop指令时,要进行两步:cx中值减一;判断cx值,不为零则转至编号处执行。
eg:s为标志
 assume cs:code
  code
segment
  mov
ax,0
  mov
cx,236
  s:add
ax,123
  loop
s
  rnov
ax,4c00h
  int
21h
 code ends
 end

补充指令和注意点

inc bx表示bx内容加1
汇编源程序中,数据不能以字母开头。比如A000h在汇编中要写为0A000h
在汇编源程序中,如果用指令访问一个内存单元, 则在指令中必须用“ [...] ” 来

表示内存单元,如果在“ [] ” 里用一个常量idata 直接给出内存单元的偏移地址, 就要在

“ [] ” 的前面显式地给出段地址所在的段寄存器。比如

mov al,ds: [0]

如果没有在“ [] ” 的前面显式地给出段地址所在的段寄存器, 比如

mov al, [0]

那么, 编译器1nasm将把指令中的“ [idata] ” 解释为“idata” 。

如果在“ [] ” 里用寄存器, 比如bx, 间接给出内存单元的偏移地址, 则段地址默

认在ds中。当然, 也可以显式地给出段地址所在的段寄存器。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: