在CPU中
- 运算器进行信息处理;
- 寄存器进行信息储存;
- 控制器控制各种器件进行工作;
- 内部总线连接各种器件,在他们之间进行数据的传送。
通用寄存器
(H)->high
(L)->low
- AX->AH和AL
- BX->BH和BL
- CX->CH和CL
- DX->DH和DL
字在寄存器中的储存
- 字节:记为byte,一个字节可以一次性处理一下两种尺寸的数据。
- 字:记为word,一个字由两个字节组成,将这两个字节分别称为高位字节和低位字节
几条汇编指令
mov:大致等于C中的赋值
add:+
物理地址
地址总线送入储存器的必须是物理地址
16位结构的CPU
8086CUP给出物理地址的方法
8086CPU用两个16位地址合成的方法来形成一个20位的物理地址
段地址*16+偏移地址=物理地址的本质含义
段地址SA,偏移地址EA
相当于2^4,地址段偏移4位
段的概念
内存中并没有分段,段的划分来自CPU
段寄存器
段地址在8086CPU的段寄存器中存放。8086中有4个段寄存器
- CS
- DS
- SS
- ES
CS和IP
CS为代码段寄存器,IP为指令指针寄存器(偏移地址)
具体执行操作见《汇编语言第四版》王爽
修改CS、IP的指令
能够修改CS、IP的指令叫转移指令
修改CS、IP指令
jmp 地址段 : 偏移地址
修改IP的内容
jmp 某一合法寄存器
jmp ax 执行前:ax=1000H,CS=2000H,IP=0003H
执行后:ax=1000H,CS=2000H,IP=1000H
代码段
长度为N的(N≤64kb)的一组代码,存在一组地址连续、起始地址为16的倍数的内存单元中。
实验1
查看CPU和内存,用机器指令和汇编指令编程
预备知识:Debug的使用
Debug是程序的调试工具,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。
Debug功能:书本P35
进入Debug
用R命令查看改变CPU寄存器的内容
用R命令修改寄存器中的值
用D命令查看内存中的内容
用E命令改写该内存中的内容;用E命令向内存中写入字符
用U命令查看内存中机器码的含义;用U命令将内存单元的内存翻译为汇编指令显示
用T命令执行内存中的机器码
用A命令向单元格中写入命令
完成