汇编语言-[bx]和loop指令

[bx]指令:

[bx] 和 [0] 有些类似,[0] 表示内存单元,它的偏移地址是 0

比如:

mov ax,[0]

将一个内存单元的内容送入 ax ,这个内存单元的长度为 2字节(字单元)

存放一个字节,偏移地址为 0 ,地址段在 ds 中

mov a1,[0]

将一个内存单元的内容送入 a1 ,这个内存单元的长度为 1字节(字单元)

存放一个字节,偏移地址为 0 ,地址段在 ds 中,其中 a1 是字符串,只传送一个字节。


在编译器中 mov ax,[0] 指令会被编译器认为是 mov ax,0 所以引入 [bx] 的概念

mov [bx],ax 表示 (ds)*16+(bx)=ax

用法和之前的ds[address]一样


[bx] 的使用方法:


mov ax,1000H

mov bx,2000H

mov ds,ax    ; 将ds数据段寄存器赋值为2000H

mov [bx],ax    ; 将ax寄存器的值赋给内存单元21000H位置

其他方式:

mov ax,ds:[0] ; 将内存单元20000H位置的值赋给ax


loop指令:

loop 是循环指令

指令的格式是:loop 标号,

CPU 执行 loop 指令的时候,要进行两步操作:

① (cx)=(cx)-1

② 判断cx中的值,不为零则转至标号处执行程序,如果为零则向下执行。

通常我们用loop指令来实现循环功能,cx 中存放循环次数。


例如:编程计算 2^2,结果存在 ax 中

分析: 设 ax=2,可计算 ax=(ax)*2,最后 ax 中为 2^2的值,

N*2 可用 N+N 实现

程序如下:


assume cs:code
code segment

	mov ax,2
    add ax,ax
    mov ax,4c00h    ; 程序返回
    int 21h
code ends    ; 代码段结束
end


假如计算 2^12,则需要写 11 条重复的指令 add ax,ax

显然我们不希望这样来写,

这时,我们可以用 loop 来做

比如:


assume cs:code
code segment
start:mov ax,2
      mov cx,11      ; 设定循环次数为11
      s:  add ax,ax        ; 每次循环执行的操作,每次执行的时候使cx-1
      loop s        ; 验证cx的值是否为0,为0执行下面的程序,否则跳回s(s可以为任意字符串)执行
      mov ax,4c00h    ; 程序返回
      int 21h
code ends    ; 代码段结束
end start

相关推荐

  1. 汇编语言-[bx]loop指令

    2024-04-28 21:26:02       32 阅读
  2. 8086 汇编笔记(四):[BX] loop 指令

    2024-04-28 21:26:02       31 阅读
  3. 汇编语言-DIV指令(除法指令)

    2024-04-28 21:26:02       31 阅读
  4. 汇编语言定义宏指令--.macro

    2024-04-28 21:26:02       30 阅读
  5. 汇编语言实验五、子程序

    2024-04-28 21:26:02       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-28 21:26:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-28 21:26:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-28 21:26:02       87 阅读
  4. Python语言-面向对象

    2024-04-28 21:26:02       96 阅读

热门阅读

  1. HTTPS安全通信:客户端与服务端协商过程详解

    2024-04-28 21:26:02       81 阅读
  2. 分布式系统阅读清单

    2024-04-28 21:26:02       54 阅读
  3. 三高架构是什么

    2024-04-28 21:26:02       34 阅读
  4. 【运维】Linux 常用网络工具

    2024-04-28 21:26:02       36 阅读
  5. 为什么数据库会用圆柱体来表示?

    2024-04-28 21:26:02       32 阅读
  6. 密码学系列6-随机预言机模型和标准模型

    2024-04-28 21:26:02       25 阅读