Dks 发表于 2018-5-11 19:02:40

实验4.3,为什么要循环17h次??

assume cs:code

code 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

cnkizy 发表于 2018-5-13 12:48:27

cx值是多少就循环多少次 就这么简单。每循环一次cx就会减1 这个就是汇编loop-cx的语法规则改不了。
{:10_254:}

DriedPlum 发表于 2018-5-26 22:56:33

这个地方是17h么?我觉得你可以通过先写一个别的获取mov ax,4c00H的位置,然后在设置cx

关键是感觉 发表于 2018-7-7 21:28:03

本帖最后由 关键是感觉 于 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次


hn123321 发表于 2018-7-10 19:35:10

你可以用debug   -u看到字节数
页: [1]
查看完整版本: 实验4.3,为什么要循环17h次??