·新手小白 发表于 2024-2-16 15:41:37

汇编语言17章17.3字符串的输入

charpush:mov bx,top

                mov ,al
                inc top
               ...
这里的mov = ds:吧
但他这里没有初始化这个si而且ds也没有设置值
那么他怎么可以定位到top哪里的
求解惑

FishC 发表于 2024-2-16 15:41:47

在这段代码中,`mov bx, top` 将 `top` 的地址加载到了 `bx` 寄存器中。假设 `top` 是一个变量或者内存地址,那么 `bx` 中就存储了 `top` 的地址。

接下来的 `mov , al` 将 `al` 寄存器中的值存储到 `bx` 所指向的地址上。这里使用的是间接寻址方式,即 `` 表示 `bx` 寄存器所包含的地址处的内容。

至于为什么没有看到 `si` 寄存器的初始化和 `ds` 值的设置,可能是因为这部分代码被省略了。在实际的程序中,可能会在其他地方对 `si` 寄存器进行初始化,并且设置正确的 `ds` 值。

总之,可以根据上下文推断出这段代码的实际运行环境,然后假设确实对 `si` 寄存器进行了初始化,并设置了正确的 `ds` 值。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

·新手小白 发表于 2024-2-20 15:10:43

zhangchenyvn 发表于 2024-2-20 12:21
在 x86 汇编语言中,`si` 是 Source Index 的缩写,它是一个通用的寄存器,常被用于指向数据的源位置。同样 ...

"C:\Users\86183\Pictures\Screenshots\屏幕截图_20240216_151443.png"
所以说他这里应该省掉初始化了?
页: [1]
查看完整版本: 汇编语言17章17.3字符串的输入