实验4.3,为什么要循环17h次??
assume cs:codecode segment
mov ax, code
mov ds, ax
mov ax, 0020h
mov es, ax
mov bx, 0
mov cx, 17h
s: mov al,
mov es:, al
inc bx
loop s
mov ax, 4c00h
int 21h
code ends
end cx值是多少就循环多少次 就这么简单。每循环一次cx就会减1 这个就是汇编loop-cx的语法规则改不了。
{:10_254:} 这个地方是17h么?我觉得你可以通过先写一个别的获取mov ax,4c00H的位置,然后在设置cx 本帖最后由 关键是感觉 于 2018-7-7 21:37 编辑
mov cx, 17h 应该是循环17-1次
有点类似C语言的DO while的意思
例如:
mov cx,1
s:
循环体
loop s
分析
1.执行完,循环体。
2.现在才开始执行loop
执行loop有2步操作 先cx-1 然后判断cx是否为0,不为0跳转到 标号前执行。
那么以上程序,其实是没有循环,虽然执行了一次 循环体,但是不能代表了执行了一次循环!!!!
如果说CX设置了几次就循环了几次,那么cx=0,怎么理解?
执行0次循环?
其实不是执行了0-1次。16位寄存器 0-1=FFFFh次
你可以用debug -u看到字节数
页:
[1]