鱼C论坛

 找回密码
 立即注册
查看: 203|回复: 1

查看内存数据,是从数据段查看,还是代码段查看?

[复制链接]
发表于 2023-12-25 18:51:16 | 显示全部楼层 |阅读模式

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

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

x
assume cs:code
code segment
    dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
    mov bx,0
    mov ax,0
    mov cx,8
    s:add ax,cs:[bx] 代码段,偏移地址为BX
    add bx,2
    loop s  ;其实我自己认为这个程序只是执行了七次循环,因为从8到1
    mov ax,4c00h
    int 21h
    code ends
end   
其实我有一个疑问,那就是我们查看内存里面的数据的时候,是以代码段为标准还是以数据段为标准?比如这题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-25 18:51:27 | 显示全部楼层
在这个程序中,我们使用了代码段(cs:code)和数据段(ds:data)两个段寄存器。

当我们访问内存数据时,是根据数据段(ds)来查看的。因此,在这个程序中,我们使用了ds来指定数据段。例如,`add ax, cs:[bx]`中的`[bx]`表示使用ds段寄存器指向的数据段中的偏移地址为bx的内容。

而cs是代码段寄存器,用于指向程序执行的代码段。在指令中,我们用`cs:`前缀指明了我们要访问的操作数位于代码段中(如`add ax, cs:[bx]`)。

综上所述,我们在查看内存数据时,需要使用ds段寄存器来指定数据段,并使用cs段寄存器来指定代码段。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 05:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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