汇编语言【BX】和LOOP的使用

本文介绍两种将数据0~63依次写入内存0:200~0:23F的方法。一种使用BX寄存器存储偏移地址,另一种仅用9条指令实现,包括利用BX递增特性简化代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


例子1.向内存0:200~0:23F依次传送数据0~63(3FH)

分析:1.  0:200~0:23F 其实和 0020:0~0020:3F 内存空间是一样的

            2.用BX储存偏移地址,dx寄存器作为存储中间变量的容器(源数据,常量0-63)来向内存写入。

对应的程序代码:

assume cs:code
code segment
  mov ax,0020h
  mov ds,ax
  mov bx,0
  mov ax,0
  mov cx,64
s:mov ds:[bx],ax
     inc bx
  inc ax
  loop s
 
  mov ax,4c00h
  int 21h
code ends
end


经编译连接后生成可执行文件,用debug加载,跟踪它的运行,如图所示:


例子2.向内存0:200~0:23F依次传送数据0~63(3FH),程序只能使用9条指令,9条指令包括"MOV AX 4C00H"和"INT 21H"(返回指令)

分析:数据0-6364个连续的数字,0-3fH也是连续的64个编号。可以使用一个bx变量就把偏移地址和数字的递增都表示了

程序代码如下:

assume cs:code
code segment
mov ax,0020h
mov ds,ax
mov bx,0
mov cx,64
s:mov ds:[bx],bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end


经编译连接后生成可执行文件,用debug加载,跟踪它的运行,如图所示:












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值