汇编语言 实验四

实验四 「bx」和loop的使用

(1)、(2)题

编程,向内存0:200~23F依次传送数据0~63(3FH),程序中只能使用9条指令,9条指令中包括“mov ax, 4c00h"和"int 21h"。

只能用9条指令,就必须利用循环;如果用两个数据来表示偏移,即一个表示200H~23FH,另一个表示要传送的数据0~63,发现这样9条命令根本不够,所以就要想到更换段地址(因为内存空间的低位00~3FH和传送的数据正好重合)。

有两种写法:
第一种

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

第二种

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

第一种很好理解,传送数据的寄存器是bl

	mov [bx], bl

即一个八位的寄存器,每次将字节大小的数据传送到目标地址。

但是第二种,我们会发现,传送数据的寄存器是bx
每次

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值