前言
数据段存在的意义是为了告诉cpu, 该段物理地址存放的是数据而不是指令
那么既然里面存放的是数据, 势必会有取值和赋值
取值
将20001H物理地址中的数据取值然后填入通用寄存器中, 如下:
mov...ds赋值
通用寄存器相当于临时变量ax,bx,cx,dx….....任选 ,只要避免冲突即可
赋值
将BH中的数据赋值给数据物理地址20001H中, 如下:
mov bh,30H
mov ax ,2000H
mov ds ,ax
mov [1] ,bh
和取值类似, 反过来即可...注意
在代码段CS:IP中, cpu读取的内存地址宽度是更具代码所占的字节数据而定, 那么在数据段DS中,如何确定读取多少个字节的数据呢?...以取值代码为例:
mov ax ,2000H
mov ds ,ax
mov ax,[1]
如果物理地址和数据一一对应关系如下:
20001H----->23
20002H----->11
20003H-