potato520 发表于 2015-12-18 11:35:54

使用循环loop遇到一些问题

在小甲鱼的视频中,他用notepad++编写(部分代码)

                                                        s:        mov                ax,0
                                                                mov                bx,
                                                                inc                ax
                                                                loop         s
为何我直接在debug中没法用变量                 mov   bx,                ,只能直接引用偏移地址         mov bx,   ?
我想让程序连续访问偏移地址里的字单元怎么办?(在debug中编写)(下了一个masm没法用,顺便求一个win10x64的masm.exe&link.exe){:9_237:}

ultralqxq 发表于 2015-12-18 12:00:24

本帖最后由 ultralqxq 于 2015-12-18 12:02 编辑

因为在16位汇编里,间接寄存器寻址方式只允许以下4个寄存器:SI DI BX BP。
而你用的是AX,所以是无法使用的。

顺带一提:在win32汇编里,间接寻址不再有这个限制,8个通用寄存器都可以使用间接寻址了。

我废话多。。多提一点:BP一般是用来操作堆栈上的数据寻址。所以其他地方一般不要使用它,保留给操作堆栈时使用。

potato520 发表于 2015-12-18 12:10:40

ultralqxq 发表于 2015-12-18 12:00
因为在16位汇编里,间接寄存器寻址方式只允许以下4个寄存器:SI DI BX BP。
而你用的是AX,所以是无法使用 ...

非常感谢,不过间接寄存器还没学到,但还是谢谢你的回答!

lewisyixin 发表于 2015-12-19 00:24:36

非常感谢楼主
页: [1]
查看完整版本: 使用循环loop遇到一些问题