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

汇编寄存器之内存访问_寄存器_02

 

2地址字型数据:  0012H

汇编寄存器之内存访问_寄存器_03

 

2.数据段与地址:

            读取

CPU------------>内存单元地址(段地址*16+偏移地址)---------------->内存单元

            写入

汇编寄存器之内存访问_汇编_04

CS和IP修改成功

汇编寄存器之内存访问_汇编_05

 修改CS:IP指向当前汇编代码段指令开始地址 

汇编寄存器之内存访问_数据_06

 t执行汇编指令

 

汇编寄存器之内存访问_数据_07

 修改数据段寄存器DS值

汇编寄存器之内存访问_IP_08

 

汇编寄存器之内存访问_IP_09

MOV al,[0] 这个[0]表示ds默认段中的偏移地址 ,因DS=1000H,所以物理地址=1000:0

那么取到的就是下图中的FA用16进制表示:00FA ,因为是16位寄存,所以是4位16进制数字

相当于 二进制  0000 0000 1111 1010  

汇编寄存器之内存访问_数据_10

 

[]中的数字表示偏移地址,因为是16寄存器,所以按字类型来计算,第一字类型16位,占用二个内存单元,低单元存低字节,高单元存高字节 

汇编寄存器之内存访问_汇编_11

 

 

 字类型减法计算

 

汇编寄存器之内存访问_数据_12

内存单元值传入段寄存器

汇编寄存器之内存访问_汇编_13

 

汇编寄存器之内存访问_IP_14

 

汇编寄存器之内存访问_汇编_15

ds[0] = 4B  ,ds[1]=B4 , ds[2] = 0D 

 

汇编寄存器之内存访问_数据_16

 

汇编寄存器之内存访问_汇编_17

 

汇编寄存器之内存访问_寄存器_18

 

汇编寄存器之内存访问_数据_19

 

汇编寄存器之内存访问_寄存器_20

 

汇编寄存器之内存访问_汇编_21

查看指定内存范围的数据

汇编寄存器之内存访问_IP_22