鱼C论坛

 找回密码
 立即注册
查看: 3059|回复: 4

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

[复制链接]
发表于 2018-5-11 19:02:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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, [bx]
        mov es:[bx], al
        inc bx
        loop s
       
        mov ax, 4c00h
        int 21h
       
code ends

end
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-13 12:48:27 | 显示全部楼层
cx值是多少就循环多少次 就这么简单。每循环一次  cx就会减1 这个就是汇编loop-cx的语法规则改不了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-26 22:56:33 | 显示全部楼层
这个地方是17h么?我觉得你可以通过先写一个别的获取mov ax,4c00H的位置,然后在设置cx
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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次


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-10 19:35:10 | 显示全部楼层
你可以用debug   -u看到字节数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 13:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表