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

[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中。当然, 也可以显式地给出段地址所在的段寄存器。

你可能感兴趣的:(汇编语言)