作业第一部分
明天早上八点之前完成第一章和第二章的所有作业(好多)
作业可以直接在word上编辑来完成,也可以东莞哟手写和扫描
但最后需要转换成pdf文件
class2-1
主要技术数据
- 字长
- 主屏
- 层次结构
3种工作模式
实模式
保护模式
v8086模式
地址加法器:
= CS*16+IP(20位)
或者CS<<4+IP
之后取对应的地址,然后将地址对应的代码执行
程序员课件的寄存器
通用寄存器
段寄存器
控制/专用寄存器
AX = AH + AL (相当于拆开)
H = high L = low
8个通用寄存器可以分为4个数据寄存器和四个地址寄存器
一般来说,前面4个存储数据,后面四个存储地址
AX:通用寄存器中数据最快的,称为累加器
使用累加器可以使指令的机器代码更短,EAX,AL同
BX 用于只是存储器地址
CX:常用于循环或者串指令的隐含技术
DX :用于存放高位双字或者IO中的端口地址
EDX则用于4字长运算的高位双字 (386和之后)
堆栈:就是栈
IP EIP
与CS一起只想下一个指令。程序员一般不能使用该寄存器
FLAGS,EFLAGS
OF:溢出
SF:符号(为零则结果为负)
ZF:0标志运算结果为0时
CF:carry flag,进位/借位标志
AF:辅助进位标志(AUX CARRY FLAG)低四位向高四位有进位或者借位的时候被置为1.
PF:奇偶标志计算结果为偶的时候被置为1
TF:跟踪标志TF=1时用于调试程序(单步工作)
Debug模式下的八位标志
OV = overflow
NV = not overflow
NG = negative
PL = positive
ZR = zero
NZ = not zero
CF = Carried
NC = not carried
AC = assisted carried
NA = not assisted carried
PF = parity even
PO = parity odd
8086的存储器和物理组织
存储单位
在PC中,存储以字节为基本存储单位
从存储器读入或者写出数据必须是字节的整数倍数
存储地址
-
每个地址单元有位移的存储单元地址
数据总线和地址总线
class2-2
存储器的物理组织
主存储器;
扩展主存储器
系统BIOS
显存,显卡BIOS
其他部件的BIOS
注意:8086是小端的。即,数据的最低字节存储在逻辑的最低字节中,并且从最低字节开始读取
分段
分段是为了按段管理,提高运行速度以及便于进行20位寻址
物理地址(20位地址),逻辑地址(短地址加偏移地址)
I/O地址空间
IO地址是16位地址,通过规定的端口号进行数据读取
信息交换方式:
- 通过IN , OUT
- 通过DOS处理程序
- 通过BIOS中断程序调用
class2-3
寻址方式和指令系统
操作数:
立即寻址,寄存器寻址,内存寻址,端口寻址
寻址方式
立即寻址:
操作数放在指令中,紧跟在操作码之后,与操作码一起存放咋爱代码段中
可以是字WORD、字节,双字
立即寻址只能用于源操作数,不能用于目的操作数
例如
MOV AL, 5
操作码
也是一个十六进制数
386Z之后有比例因子
EA = 基址+(变地址x比例因子)+位移量
直接寻址
MOV AX,[2000H]
加中括号的版本这个是一个地址
段地址默认为使用DS数据段
寄存器间接寻址
MOV AX,[BX],段地址默认为CS
如果是BP,则默认为SS
不能使用SP。
也可以指定使用段超越:
MOV AX EP:[BX]
寄存器相对寻址
MOV AX,3000H[SI]
基址变址寻址
MOV AX, [BX+DI]
或者
MOV AX,[BX][DI]
相对基址变址寻址
比例变址寻址
MOV EAX,COUNT[ESI4]
基址比例变址寻址
MOV ECX, [EBX][ESI8]
段内寻址
转向的有效地址是当前IP寄存器的内容+指令中指定的8位或者16位位移量
JMP SHORT NEXT
SHORT是一个地址
转向的优先地址是一个寄存器或者存储单元的内容,并且取代IP寄存器的内容
段间直接寻址
指令中提供了转向的短地址和偏移地址,分别取代CS和IP
JMP FAR PTR NEXT
JMP DWORD PTR [INTER+]
JMP DWORD PTR [EDI]
I/O寻址
直接I/O寻址
只用于8位寻址
IN AL ,40H
OUT 42H,AL
注意,这里的40H是一个端口号而不是一个数据地址
间接I/O寻址
16位必须在DX中寻址
MOV DX,1F7H
IN AL,DX
OUT DX,AL
DX是一个端口号
指令
-
指令
计算机执行的各种操作命令
-
指令系统
计算机所能执行的全部指令
-
向上兼容
-
指令顺序】
操作码
操作码 目的操作数,源操作数
例如
MOV AL, 34H; 立即数
ADD AL, DATA1; 操作数地址
MUL CL ;单操作数
隐含操作数指令:
例如AAA
指令系统
数据指令
数据传送指令
MOV 不印象操作位
将源操作数的数据给到目的操作数
MOV DST, SRC