琴长不过时光 发表于 2019-6-12 19:41:46

寄存器内容写入内存失败,请教下

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

start:mov bx,1000H
        mov ds,bx
        mov ,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,
        mov ,cx(错误在这句)
        mov ax,4c00h
        int 21h
xuwen ends
end start

newu 发表于 2019-6-12 22:11:27

学了好多年了,往差不多了。

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

人造人 发表于 2019-6-12 22:24:44

newu 发表于 2019-6-12 22:11
学了好多年了,往差不多了。

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

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

在实模式下,就是写内存绝对地址0也没事,那里保存着除法溢出的中断地址

暗pluto 发表于 2019-6-13 15:17:09

直接寻址方式
mov ax,
如果没有特殊说明,直接寻址的操作数一般在内存的数据段中,即隐含的段寄存器是DS。
(也可以是别的段寄存器,但要加上“:”)例如 mov ax,es:

但现在是反过来的即
mov ,ax
这种没有隐含的段寄存器,所以要自己添加段寄存器,例如
mov ds:,ax

琴长不过时光 发表于 2019-6-13 21:02:27

谢谢大家了 我问题解决了
assume cs:xuwen
xuwen segment

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

xuwen ends
end start

ds:
加上一个ds就可以了
页: [1]
查看完整版本: 寄存器内容写入内存失败,请教下