3.1 内存中字的存储——
字单元:存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。
3.2 DS和[address]——
8086CPU不支持将数据直接送入段寄存器的操作。
3.3 字的传送
3.4 mov/add/sub指令——
mov指令形式:
mov 寄存器,数据
mov 寄存器,寄存器
mov 寄存器,内存单元
mov 内存单元,寄存器
mov 段寄存器,寄存器
add指令形式:
add 寄存器,数据
add 寄存器,寄存器
add 寄存器,内存单元
add 内存单元,寄存器
sub指令形式:
sub 寄存器,数据
sub 寄存器,寄存器
sub 寄存器,内存单元
sub 内存单元,寄存器
3.5 数据段
3.6 栈
3.7 CPU提供的栈机制——
8086CPU的入栈和出栈操作都以字为单位进行。
SS段寄存器:栈顶的段地址。
SP寄存器:偏移地址。
任意时刻:SS:SP指向栈顶元素。
3.8 栈顶超界的问题——
8086CPU不保证对栈的操作不会超界。
3.9 push/pop指令——
push/pop 寄存器/段寄存器/内存单元
3.10栈段——
一个栈段的容量最大为64KB。
注:栈是一种非常重要的机制,要深入理解,灵活掌握。需要参照教材认真学习栈。
END
2012年01月01日
在CPU中:
运算器进行信息处理;
寄存器进行信息存储;
控制器控制各种器件进行工作;
内部总线连接各种器件,在它们之间进行数据传送。
8086CPU有14个寄存器:(8086所有寄存器16位)
AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW
2.1 通用寄存器——
通用寄存器:AX、BX、CX、DX;
16位可分两个独立使用的8位寄存器:
AX=AH+AL;BX=BH+BL;CX=CH+CL;DX=DH+DL。
AX的低8位构成AL,高8位构成AH寄存器。
2.2 字在寄存器中的存储——
字节:byte,8个bit;
字:两个字节,为高位字节和低位字节。
2.3 几个汇编指令——
写汇编指令或寄存器名称时不分大小写。
数据传送或运算时,指令的两个操作对象的位数应当一致。
2.4 物理地址
2.5 16位结构的CPU——
16位结构描述了一个CPU具有的结构特性:
(1)运算器一次最多可以处理16位的数据;
(2)寄存器的最大宽度为16位;
(3)寄存器和运算器之间的通路为16位。
2.6 8086CPU给出物理地址的方法——
地址加法器:物理地址=段地址*16+偏移地址;
简捷算法:段地址*16 即 左移4位。
2.7 “段地址*16+偏移地址=物理地址”的本质含义——
本质含义:CPU在访问内存时,用一个基础地址(段地址*16)和一个相对于基础地址的偏移地址相加,给出 内存单元的物理地址。
基础地址+偏移地址=物理地址。
2.8 段的概念——
段地址*16:定位段的起始地址(基础地址)。
偏移地址:定位段中的内存单元。
一个段的最大长度为64KB。
2.9 段寄存器——
8086CPU有4个段寄存器:CS、DS、SS、ES。
2.10CS和IP——
CS:代码段寄存器。
IP:指令指针寄存器。
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
2.11修改CS、IP的指令——
jmp指令:jmp 段地址:偏移地址
用指令中给出的段地址修改CS,偏移地址修改IP。
“jmp 某一合法寄存器”:用寄存器中的值修改IP。
2.12代码段
实验1 查看CPU和内存,用机器指令和汇编指令编程
略。
END
2012年01月01日
学习教材:《汇编语言(第2版)》,王爽,清华大学出版社
第一章 基础知识
1.1机器语言
1.2汇编语言的产生
1.3汇编语言的组成——
(1)汇编指令:机器码的助记符,有对应的机器码;
(2)伪指令:无对应的机器码,由编译器执行;
(3)其他符号:如+、-、*、/等,由编译器识别,无对应的机器码。
汇编语言的核心:汇编指令。它决定了汇编语言的特性。
1.4存储器
1.5指令和数据——
指令和数据是应用上的概念。存储时无区别,二进制。
1.6存储单元——
1Byte=8bit;
微机存储器:1存储单元=1Byte=8bit;1存储器=128存储单元=128Byte
微机存储器的容量以字节为最小单位计算。
1.7CPU对存储器的读写——
CPU进行数据读写的3类信息交换:
(1)存储单元的地址(地址信息);
(2)器件的选择,读或写的命令(控制信息);
(3)读或写的数据(数据信息);
总线的逻辑分类:地址总线、控制总线、数据总线。
1.8地址总线——
CPU地址总线宽度=地址线根数N。这样的CPU最多可以寻找2的N次方个内存单元。
1.9数据总线——
数据总线的宽度决定了CPU的外界的数据传送速度。
8088CPU的数据总线宽度为8,8086的数据总线宽度为16。
例:传送数据89D8H:8088两次传送,8086一次传送。
1.10控制总线——
控制总线是不同控制线的集合。
控制总线宽度决定了CPU对外部器件的控制能力。
1.11内存地址空间(概述)
1.12主板
1.13接口卡
1.14各类存储器芯片
1.15内存地址空间——
内存地址空间的大小受CPU地址总线宽度的限制。
8086CPU的地址总线宽度为20,内存地址空间大小为1MB;80386CPU地址总线宽度为32,内存地址空间最大为4GB。
END
2012年01月01日