北丶悲 发表于 2018-10-30 10:41:38

帮忙看下实验七的代码



问题:
        1.这个我写的对不对?
        2.DOSBox 0.74运行到外循环loop指令时就卡住了,是代码的问题还是机器/软件的问题

446546406 发表于 2018-10-30 11:32:38

本帖最后由 446546406 于 2018-10-30 11:49 编辑

大概看了下,这个程序是死循环,CX先被赋值21.没有保存就被重新赋值覆盖了,
这个程序循环CX值是这样的,CX=21 , CX=4 执行S循环4次 CX=0 , CX=21 , CX-1=20. 跳到S1处执行
CX=4执行S循环4次 CX=0 , CX=21 , CX-1=20.跳到S1处执行循环·····无限执行S1的循环。
修改后:
MOV CX,21
S1:MOV DX,CX
````
MOV CX,DX
LOOP S1

446546406 发表于 2018-10-30 11:42:25

本帖最后由 446546406 于 2018-10-30 11:44 编辑

又大概看了下,下面DX被你占用了,用栈保存吧;
MOV CX,21
S1:PUSH CX
....
POP CX
LOOP S1
页: [1]
查看完整版本: 帮忙看下实验七的代码