微机原理与接口技术复习笔记汇总Word文档下载推荐.docx
《微机原理与接口技术复习笔记汇总Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术复习笔记汇总Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
SS(StackSegment):
保存堆栈段的段地址,堆栈段用于形成堆栈区。
DS(DataSegment):
保存数据段的段地址,数据段用于暂存原始数据和处理后的中间结果及最终结果。
ES(ExtraSegment):
保存扩展段的段地址,扩展段与数据段类似,一般情况下,数据段用于存储局部变量,扩展段用于存储全局变量。
标志寄存器:
CF(CarryFlag):
进位/借位标志。
(最高位)
PF(ParityFlag):
奇偶标志。
(置位位的个数,为偶则PF=1,表示为PE;
为奇则PD=0,表示为PO)
AF(AuxiliaryCarryFlag):
辅助进位/借位标志,用于BCD加法的调整。
(运算的低四位产生了进位或借位,AF=1,表示为AC;
否则AF=0,表示为NA)
ZF(ZeroFlag):
零标志。
(运算结果为0,则标志置位;
否则复位)
SF(SignFlag):
符号标志,用于标志符号的正负。
(运算结果最高位为1,则标志置位,表示为NG;
否则标志复位,表示为PL)
OF(OverflowFlag):
溢出标志,用于标志符号数的运算结果是否超出表达范围(无符号数的溢出以CF标志)。
(双高异或判别)
另外3位通过人为设置,用以控制8086的3种特定操作,称为控制标志。
TF(TrapFlag):
陷阱标志,也称为单步标志,用于程序的单步执行调试。
IF(InterruptFlag):
中断标志。
(IF=1,表示为EI,即允许响应可屏蔽中断的请求;
IF=0,表示为DI,即禁止响应可屏蔽中断的请求)
DF(DirectionFlag):
方向标志。
(DF=1,表示为DN,即down,串操作后地址指针自动减量;
DF=0,表示为UP,即up,串操作后地址指针自动增量)
通用寄存器:
AX(Accumulator),累加寄存器;
主要用于乘除运算和输入输出操作时存储操作数、优化移动操作。
BX(Base),基寄存器;
主要用于存储器间接寻址时存储数据段的基地址。
CX(Counter),计数寄存器;
主要用于循环、重复、移位操作时存储计数值。
DX(Data),数据寄存器;
主要用于乘除运算时存储操作数、输入输出操作间接寻址时存储I/O地址。
SP(StackPointer),堆栈指针寄存器;
用于存储站定的偏移地址。
BP(BasePointer)基指针寄存器;
主要用于存储器间接寻址时存储堆栈段的基地址。
SI(SourceIndex),索引源寄存器;
主要用于存储器间接寻址时存储索引地址、串操作时存储原串偏移地址。
DI(DestinationIndex),目的索引寄存器;
主要用于存储器间接寻址时存储索引地址、串操作时存储目的串偏移地址。
10.较高存储器地址的字节存放该字的高8位,较低存储器地址的字节存放在该字的低8位;
物理地址=16d×
段基址+偏移地址
11.8086的7种寻址方式:
立即数寻址
寄存器寻址
直接寻址
寄存器间接寻址
基址/变址寻址(SI只能对应BP和BX,DI只能对应BP和BX)
基址变址相对寻址
12.N一般指立即数,M指存储器,R指寄存器
13.8086指令集
通用数据传输指令:
MOV、PUSH、POP、XCHG
累加器专用传输指令:
IN、OUT、XLAT、LEA、LDS、LES
算数运算指令:
ADD、ADC(考虑CF标志位的加)、INC(自加1)、DAA(对压缩BCD码加法操作的自动校正0110)、AAA(其余加法校正)、SUB、SBB、DEC、DAS、AAS、CMP(比较指令,本质是相减但是不计算结果只影响标志位)、NEG、(I)MUL、AAM、(I)DIV、CBW、CWD、AAD、NOT、AND、OR、XOR、TEST(本质是AND但是不计算结果只影响标志位)、SHR、SHL、ROR、ROL、JMP(无条件跳转)、条件跳转多涉及标志位的情况、LOOP(循环指令,每次执行该指令CX-1)
14.汇编语言程序设计:
变量定义,具体的常见变量类型有DB(8位)、DW、DD
?
是随机数
DUP能用于重复定义LENTH则用于求解有DUP重复了多少次
PTR用于强制类型转换
用‘’单引号引起来部分为ASCII码形式
段定义以SEGMENT开始ENDS结束
15.接口包含有数据信息(数字量,模拟量,A/D转换,开关量),状态信息(表征外设工作状态的信息),控制信息(CPU通过接口发出的控制外设工作的信息)
16.接口是CPU与外设间的桥梁
17.接口在电路中的作用:
数据缓冲功能,寄存器和锁存器解决告诉主机与低俗外设间的速度匹配功能
端口选择功能,CPU在一时刻只能与一个端口交换信息
信号转换功能,外设与总线信号的统一
接收和执行CPU的命令功能
中断功能,中断CPU使其处理突发事件
可编程功能,可编程芯片直接改变接口驱动程序就可以实现更新
数据宽度和数据格式转换的功能,串并-并串变换
18.I/O端口(接口电路中能被CPU直接访问的寄存器地址)编址方式(统一编址(单片机和DSP)和独立编址(8086和8088有自己的专有指令))
19.端口地址译码,三个口每个口都有一个地址,门电路,译码器,比较器
20.CPU与外设的传送方式,小批量:
无条件传送,查询方式传送,中断方式传送,大批量:
DMA(接权CPU)直接存储器存取方式
21.可编程芯片
8255可编程并行接口芯片
8253定时/计数器
实际例题:
1.寻址方式判断:
2.指令改错:
PUSHCL有错push指令操作数为16位(PUSHCX)
ADCAX,0ABH
OUT3EBH,AX有错当输出设备地址大于255即大于FFH则应该利用寄存器DX间接寻址(MOVDX2EBH;
OUTDX,AX)
MULAL,CL有错MUL指令只有一个操作数乘数默认存放在AL或AX中(MULCL)
MULAX,25有错乘法指令不能使用立即数
(MOVBL,25;
MULBL)
ROLDX,5有错移动位数大于1的要使用CL寄存器
(MOVDL,5;
ROLDX,CL)
CALLFARSUM
POPFR有错寄存器FR不能单独使用(POPFFR)
MOV234H,BX有错立即数不能作为目的操作数(MOVBX234H)
INC[SI]有错不确定是八位还是十六位的目标码(INCBYTEPTR[SI])
ADD[BX],456H有错[BX]类型未知(ADDWORDPTR[BX],456H)
INT0有错自加指令不能用于立即数
DIVAX,BX有错DIV指令只有一个操作数除数和被除数默认放在AX或AL中,结果商放在AL或AX中余数放在AH或DX中(DIVBX)
DEC[BP]有错未知类型(DECWORDPTR[BP])
XLABX
ADDCX+1有错没有这种自加的表示方法(INCCX)
DAAAX有错DAA校正命令没有操作数(DAA)
3.编程题(仅提供核心思路)
(1)大小写字母互换(前提是题目所给字符串只有字母)参考书91面例4-12
首先确定大小写通过ASCII码加减操作实现转换
AGAIN:
MOVAL,[BX]
CMPAL,‘a’
JBNEXT;
比a小跳转
SUBAL,20H
MOV[BX],AL
JMPAA1
NEXT:
ADDAL,20H
AA1:
INCBX
JMPAGAIN
设置结束办法,如遇到‘$’结束循环
CMPAL,‘$’
JEDONE
DONE:
MOVAX,4C00H
INT21H
(2)找最大或最小值(参考书96页例4-19)
逐个比较,通过地址的偏移实现一个一个的比较
LEASI,STR
MOVAH,[SI];
先将当前数放在最大位置
A1:
MOVAL,[SI];
逐个取数开始比较
CMPAH,AL
JBA2
MOVAH,AL;
发现更大的数便放入AH中
A2:
INCSI
JMPA1
循环次数的限制和设置LOOP的使用
LOOP的循环次数由CX寄存器决定,所以预先给CX赋值便设置好了循环次数
MOVCL,5
A1:
LOOPA1;
循环5次
(3)统计数字或字母的个数
方法类似于第一题,确定其范围然后跳转即可,设置好记录的寄存器进行计数
(4)找正数且为偶数,复数且为奇数的数
正负判断用TESTAL,80H和JS跳转命令,符号标志位SF为1的时候表示其为复数JS跳转,为0正数则不跳转
奇偶判断用TESTAL,01H和JZ跳转命令,零标志位ZF为1的时候表示其最低位为0偶数JZ跳转,为0则表示其最低位为1奇数JZ不跳转
(5)统计一个字(16位)中0和1的个数
借助移位命令SHR右移不断改变最低位的值再利用TEST和JZ判断是1还是0并做计数,判断方法同第四题
(6)将DX内容分别送到ALAHBLBH中
分高位和低位然后利用AND与运算ANDDL,0FH屏蔽高四位得到低四位,用右移SHR四位MOVCL,4;
SHRDL,CL的方式得到高四位
(7)十六进制转ASCII码转BCD码
十六进制转ASCII码主要分是字母形式还是数字形式处理方式也不同,BCD码则是要将十六进制化为十进制后进行拆分个十百位
ASCII码转换:
书100页例4-24
MOVAH,AL
ANDAL,0FH;
先处理低位
CMPAL,0AH;
和A(=10)比较
JBAA1;
如果是数字则跳转字母则直接加上07
ADDAL,07
ADDAL,30H;
对于数字加上30H
MOVBL,AL
MOVCL,4
SHRAH,CL;
再来处理高位
BCD码转换:
MOVBL,BUFF
MOVAL,100
DIVBL;
对要处理的数作除法
MOVDH,AL;
商为百位数字
MOVAL,10
DIVAH;
余数再除十得到十位数字
MOVDL,AL
MOVCL,4
SHLDL,CL
ADDDL,AH;
左移四位以后再加上第二次除法的余数即个位数字
(8)8253级联应用
(9)8255应用
分清工作方式控制输入输出的语言主要是OUT和IN
由里向外
MOVDX,所在地址
MOVAL,工作方式
OUTDX,AL
由外向里
INAL,DX