汇编语言之----------------------[bx] loop

1、

在debug中我们写过类似的指令:MOV AX,[0]

表示将ds:0处的数据送入ax中。指令中,在“[...]”里用一个常量0表示内存单元的偏移地址

[bx]

对于编译器来说

mov ax, [0]

[0] 表示内存单元,他的偏移地址是0,但是编译器是认为只把0传过去而不是地址里面的数据

mov bx,0

mov ax,[bx]

这样间接的使编译器知道地址

2、

loop代表循环

3、

描述性符号()

(1)ax中的内容为0010H,我们可以这样来描述:(ax)= 0010H

(2)2000:1000处的内容为0010H,我们可以这样来描述:(21000H) = 0010H

(3)对于 mov ax,[2]的功能,我们可以这样来描述:(ax) = ((ds)*16 + 2)

(4)对于mov [2],ax的功能 ,我们可以这样来描述:((ds)*16+2) = (ax)

(5)对于add ax,2   (ax) = (ax)+2

(6)对于add ax,bx (ax) = (ax)+(bx)

(7)对于push ax

  (sp) = (sp) - 2

   ((ss)*16 + (sp) )= (ax)

(8)对于pop ax的功能

  (ax) = ((ss)*16 + (sp))

  (sp) = (sp) + 2

4、

mov ax,2000H

MOV DS,AX

MOV BX,1000Hds = 2000H bx=1000H

mov ax,[bx]把内存2000:1000处的字型数据送入ax中

inc bx  //含义为bx中的内容加1

inc bx

mov [bx],ax///把ax中的数据送入bx中

inc bx

inc

bx

mov [bx],ax

inc bx

mov [bx],al

inc bx

mov [bx],al

5、loop

loop指令使用时要执行两步操作

(1)、(cx)= (cx) - 1

(2)、判断cx中的值,不为0则转至标号处执行程序,如果为0则向下执行

通常loop实现循环功能,cx存放循环次数

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值