1.内存中字的存储:
在CPU中用一个16位寄存器来存储一个字, 高8位存高字节,低8位存低字节
如AX寄存器存在一个字,那么AH存高字节,AL存低字节
在内存中存储字时是用两个连续的字节来存储字的,
这个字的低字节存在低单元,高字节存在高单元.
如下表示:
内存单元编号 单元中数据 字节说明
0 | 20H | 低字节 | 存储字的两个单元 |
1 | 4EH | 高字节 | |
2 | 12H | 低字节 | 存储字的两个单元 |
3 | 00H | 高字节 | |
4 | |||
5 |
上面表中, 0,1单元存储了字 4E20H , 2,3 单元中存储了字 0012H ,其中0,2单元为低单元.
4E20H的低字节为20H, 0012H的低字节为12H.
0地址字型数据: 4E20H
1地址字型数据: 124EH
2地址字型数据: 0012H
2.数据段与地址:
读取
CPU------------>内存单元地址(段地址*16+偏移地址)---------------->内存单元
写入
CS和IP修改成功
修改CS:IP指向当前汇编代码段指令开始地址
t执行汇编指令
修改数据段寄存器DS值
MOV al,[0] 这个[0]表示ds默认段中的偏移地址 ,因DS=1000H,所以物理地址=1000:0
那么取到的就是下图中的FA用16进制表示:00FA ,因为是16位寄存,所以是4位16进制数字
相当于 二进制 0000 0000 1111 1010
[]中的数字表示偏移地址,因为是16寄存器,所以按字类型来计算,第一字类型16位,占用二个内存单元,低单元存低字节,高单元存高字节
字类型减法计算
内存单元值传入段寄存器
ds[0] = 4B ,ds[1]=B4 , ds[2] = 0D
查看指定内存范围的数据