[009][汇编语言]检测点3.1 程序段CS:IP 数据段DS:[N]

检测点3.1

[009][汇编语言]检测点3.1 程序段CS:IP 数据段DS:[N]_第1张图片
检测点3.1 做题草稿
  • 检测点3.1 仅仅看答案不够,做题的过程更为重要,把草稿保存在这里

检测点3.1考查的知识点

  • 字节型 与 字型数据
  • 程序段(指令) CS:IP 与 数据段DS:[N]

字节型与字型数据

字节型  1个内存单元      传递8位数据   汇编用  mov al,12H
字型    连续2个内存单元  传递16位数据  汇编用  mov ax,1234H

程序段CS:IP 与 数据段DS:[N]

如何计算指向的物理地址

  • 去哪里取程序(指令)?CS:IP 计算出来的物理地址
    (点我复习 CS:IP)
  • 去哪里取数据? DS:[N] 计算出来的物理地址
    (点我复习 DS:[N])

CPU执行指令活动中两者的作用

Debug.exe 使用A命令,在内存输入各种汇编指令
Debug.exe 使用E命令,在内存输入各种数据/指令
Debug.exe 使用T命令,直接执行从 CS:IP 指向的地址里的汇编指令

MOV ADD SUB 等汇编指令导致CPU中寄存器内容的变化
当汇编指令中出现 [ ] 符号,意味着需要对[ ]进行解读
CPU 将DS与[ ] 中的内容结合生成的一个物理地址
这个物理地址里放着的就是想要的【数据】

具体实例

假设要即将执行的汇编指令是 MOV AX,[0]
此时CPU中寄存器的内容如下:
CS=1111H  DS=6666H  IP=0000H

可以看到,
1、CS:IP指向的内存单元的物理地址是 11110H
2、[0]说明偏移地址是0,DS:[0]指向内存单元的物理地址是 66660 H

这说明了两件事,
第一,MOV AX,[0] 内存单元 11110H 里面;
第二,要放入AX的数据,被放在内存单元 66660 H 里面;

并且,在执行完这条MOV指令之后,
IP寄存器的值会自动增加,
CS:IP随之更新,自然而然会指向一个新的地址,
这个新地址放着新的汇编指令。

你可能感兴趣的:([009][汇编语言]检测点3.1 程序段CS:IP 数据段DS:[N])