目录
一、汇编语言主要应用场合
二、数据表示
1.数制
2.数值的编码
3.字符的编码
三、8086微处理器
1.功能结构
2.8086寄存器
(1)通用寄存器
(2)标志寄存器
(3)指令指针寄存器——IP
(4)段寄存器
3.8086的存储器组织
(1)数据的存储格式
(2)存储器的分段管理
(3)段寄存器的作用
四、8086的寻址方式
1.立即数寻址方式
2.寄存器寻址方式
3.存储器寻址方式
(1)直接寻址方式
(2)寄存器间接寻址方式
(3)寄存器相对寻址方式
(4)基址变址寻址方式
(5)相对基址变址寻址方式
(1)程序要有较快的执行时间
(2)程序与计算机硬件密切相关
(3)大型软件需要提高性能、优化处理的部分
(4)没有合适的高级语言或只能采用汇编语言时,如开发最新的处理器程序、暂时没有支持新指令的编译程序。
十六进制:H/h
二进制:B/b
十进制:D/d
十进制整数转换为二进制数和十六进制数:
整除取余,逆序
十进制小数转换为二进制数和十六进制数:
乘以基数,取整数,顺序
(1)原码——最高有效位表示符号(正0负1),其它位直接表示数值大小
(2)反码——整数反码与源码相同,负数反码为源码取反
0有+0和-0,8位二进制原码和反码所能表示范围为-127-127
(3)补码——正数补码与源码相同,负数反码为源码取反加1
注:补码转为原码,也是取反加1
8位二进制补码表示范围为-128-127
补码好处:减法运算可以变换成加法运算,所以在计算机中,有符号数默认采用补码形式。
BCD用4位二进制编码表示10进制(与16进制一样,只不过少了10-15这几位)
例:0100表示4
1字节表示1位BCD码
1字节表示2位BCD码
ASCII采用7位二进制编码,有128个
最高D7位通常作为0,通信时,D7位通常用作奇偶校验位
:前32个和最后一个编码
:从20H开始的95个编码,包括数码,英文字符,标点符号
注:处理器不区别两种字符,只有外部设备才区别对待。
使用16位编码,给每个字符提供了一个唯一的数字,不论平台、程序、语言
前256个字符对应ASCII字符,16位编码的高字节为0,低字节等于ASCII编码值
右边为总线接口单元(BIU),负责CPU对存储器和外设进行访问
左边为执行单元(EU),负责指令的译码、执行和数据的运算
完成一条指令的两个主要阶段:
(1)取指:从主存储器中取出指令代码进入CPU
(2)执行:将指令代码翻译成它代表的功能(译码),并发出有关控制信号实现这个功能。
寄存器用于暂时存放程序执行过程中的代码和数据
分为:透明寄存器(实际存在但从某个角度看好像没有)和可编程寄存器
可编程寄存器可分为通用寄存器和专用寄存器。
标志(Flag)用于反映指令执行结果或控制指令执行形式。
标志寄存器FLAGS,也被称为程序状态字寄存器PSW。
各种标志分为两类:6个状态标志和3个控制标志
加、减、逻辑运算指令是主要设置它们的指令
CF(进位标志)、PF(奇偶标志)、AF(调整标志)、ZF(零标志)、SF(符号标志)、OF(溢出标志)
DF(方向标志)、IF(中断允许标志)、TF(陷阱标志)
IP是专用寄存器,具有自动增量的能力,处理完一条指令,IP的值就加上该指令的字节数,从而指向下一条指令,实现程序的顺序执行
一个段安排一类代码或数据
主要涉及:代码段,数据段,堆栈段
段寄存器有:CS、SS、DS、ES
基本单位:1bit,存储一个二进制数0或1
1字节:8个bit
1字:2字节,16个bit
1双字:2字,4字节,32个bit
最低位为最低有效位,最高位为最高有效位
地址边界对齐:对n字节的数据,起始于能够被n整除的存储器地址位置
8086CPU可以表达16位存储器地址,但是地址线是20位的,要将16位的转换成20位的:
物理地址/绝对地址=段地址*16+偏移地址
注:同一个物理地址可以有多个逻辑地址
例如 1460:0100h和1380:0F00h的物理地址均为14700h
CS:代码段寄存器,存放程序的指令序列
SS:堆栈段寄存器,存放堆栈的段地址
DS:数据段寄存器,存放当前运行程序所用的数据
ES:附加数据段,也用于数据的保存。另外,串操作指令将附加段作为其目的操作数的存放区域
mov al,05h
mov ax,1234h
mov bx,ax
mov ax,[2000h]
mov ax,es:[2000h]
mov ax,[si]
mov ax,[di+06h] ;bx,si,di寄存器默认是DS
mov ax,[bp+06h] ;bp寄存器默认是SS
mov ax,[bx+si]
mov ax,[bx+si+06h]
mov ax,count[si]
mov ax,wnum[bx][si]