《汇编语言》- 读书笔记 - 实验4 [bx]和 loop 的使用
- 编程,向内存
0:200~0:23F
依次传送数据0~63
(3FH)。 - 编程,向内存
0:200~0:23F
依次传送数据0~63
(3FH),程序中只能使用 9 条指令,9条指令中包括mov ax, 4c00h
和int 21h
assume cs:code
code segment
mov ax, 20h ;配合bx正好得到 20h*16 + 0 =0200h
mov ds, ax ;设置(ds)=0
mov bx, 0
mov cx, 64 ;设置循环次数(0时结束,所以要多给一次)
s: mov [bx], bx ;0 送到 200 遍历63次,每次bx+1
inc bx ;偏移地址向前移动
loop s ;检测循环条件,符合就循环,否则向下继续
mov ax, 4c00h
int 21h
code ends
end
- 下面的程序的功能是将
mov ax,4c0h
之前的指令复制到内存0:200 处
,补全程序。上机调试,跟踪运行结果。
assume cs:code
code segment
mov ax, cs ;配合bx正好得到 20h*16 + 0 =0200h
mov ds, ax ;设置(ds)=0
mov ax, 0020h
mov es, ax
mov bx, 0
mov cx, cx ;设置循环次数(0时结束,所以要多给一次)
s: mov al, [bx] ;
mov es:[bx], al
inc bx ;偏移地址向前移动
loop s ;检测循环条件,符合就循环,否则向下继续
mov ax, 4c00h
int 21h
code ends
end
但是不知道何最后是 CC21
???
总结
bx + loop 可以实现类似 for 循环的效果
mov bx, 0 ; i = 0
mov cx, 8 ; len = 8
s: push [bx]
inc bx ; i++
loop s ; i < len 循环
inc 自增相当于 i++
dec 自减相当于 i--