鱼C论坛

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

[已解决]寄存器内容写入内存失败,请教下

[复制链接]
发表于 2019-6-12 19:41:46 | 显示全部楼层 |阅读模式

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

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

x
问题14:运行失败
assume cs:xuwen
xuwen segment

start:mov bx,1000H
        mov ds,bx
        mov [0],ax(错误在这句)
        mov ax,4c00H
        int 21h

xuwen ends
end start

问题15:运行失败
assume cs:xuwen

xuwen segment
start:mov bx,1000H
        mov ds,bx
        mov al,[0]
        mov [0],cx(错误在这句)
        mov ax,4c00h
        int 21h
xuwen ends
end start
最佳答案
2019-6-13 15:17:09
直接寻址方式
mov ax,[0]
如果没有特殊说明,直接寻址的操作数一般在内存的数据段中,即隐含的段寄存器是DS。
(也可以是别的段寄存器,但要加上“:”)例如 mov ax,es:[0]

但现在是反过来的即
mov [0],ax
这种没有隐含的段寄存器,所以要自己添加段寄存器,例如
mov ds:[0],ax
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-12 22:11:27 | 显示全部楼层
学了好多年了,往差不多了。

内存地址为0的区域本身就不允许读写。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-12 22:24:44 | 显示全部楼层
newu 发表于 2019-6-12 22:11
学了好多年了,往差不多了。

内存地址为0的区域本身就不允许读写。

他并没有写内存绝对地址0,他写的是1000:0
也就是内存绝对地址10000

在实模式下,就是写内存绝对地址0也没事,那里保存着除法溢出的中断地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-13 15:17:09 | 显示全部楼层    本楼为最佳答案   
直接寻址方式
mov ax,[0]
如果没有特殊说明,直接寻址的操作数一般在内存的数据段中,即隐含的段寄存器是DS。
(也可以是别的段寄存器,但要加上“:”)例如 mov ax,es:[0]

但现在是反过来的即
mov [0],ax
这种没有隐含的段寄存器,所以要自己添加段寄存器,例如
mov ds:[0],ax
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-13 21:02:27 | 显示全部楼层
谢谢大家了 我问题解决了
assume cs:xuwen
xuwen segment

start:mov bx,1000H
        mov ds,bx
        mov ds:[0],ax(错误在这句)
        mov ax,4c00H
        int 21h

xuwen ends
end start

ds:[0]
加上一个ds就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 02:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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