hello大家好我是吃个西瓜嘤,这篇节只总结微机原理常考填空题都是干货展示常出现的易错点以及微机原理注意事项。
以下仅代表个人总结 #微机原理
正文开始:
1,区分JZ,JNZ技巧
也就是D7=0用JZ;D7=1用JNZ。
JZ;条件ZF=1时跳
JNZ;条件ZF=0时跳
L1:IN ....
TEST AL,80H
JZ L1;此时D7=0时转L1
L2:....
TEST AL,80H
JNZ L2;此时D7=1时转L2
2,x,y都是有符号单字节,那么x+y是否溢出?超范围就溢出,没超就不溢出。
(有符号数范围-128~+127)。
3,offset后面不能是寄存器,一定是变量或存储器寻址。
4,org后面是个偏移地址(也就是内存单元的地址或变量),不能是寄存器。
5,需要外部触发的只有1和5。
6,定义一个变量var,变量var的内容第一个字是0001H,第二个字是0002H,第三个字的内容是$+2,问第三个字0014H单元的内容是多少?答案是16H,已知var的有效地址(偏移地址)是0010H。
解:$指的是所定义的所有单元的下一个单元地址,$是0014H,$+2就是0016H,具体以下看图。
var-> | 01H |
00H | |
02H | |
00H | |
$+2-> | 16H |
$+2-> | 00H |
7,IP的变化只用于转移类指令才能变化。(像jmp、中断返回等)
8,DMA传送一定要用到DMA C控制器,也就是8237芯片。
9,DMA的传输过程简答需要记一下这个。
10,LEA BX,[DI]这条指令就是把DI的有效地址给BX,DI的有效地址就是DI的值EA=DI。
11,8259六十四级中断,也就是它能管理64个外设,得九级芯片级联。
12,CBW:符号扩展。功能是把al的字节扩展到ax也就是由8位扩展到16位。(其实就是把al8位在扩出符号8位放在ah中)
已知,ax=6789h,那么ah=67h,al=89h,执行cbw,问ax是多少?al是89h=1000 1001 符号位是1所以就扩出8个1=1111 1111 1000 1001也就是0FF89H。
13,还有一个指令是CWD是把字扩展到双字,字是ax得到dx,ax。
扩之前就看ax的最高位符号位是多少那么dx的十六位就是多少。
所以扩展前后真值数值大小不变,就是位数变长了。
14,在计算机中,一般用16进制表示的数值都是以补码的形式存在。
①补码变成真值,先补码变成原码,然后原码变成真值。
②真值变成补码,先真值转到原码,然后原码在变成补码。
15,8259只能管理外中断中的可屏蔽中断INTR。
8259管理的中断源叫向量中断。
中断源一个是向量中断一个是查询中断(非向量中断)两类。
向量中断一定是要通过中断响应信号来在INTA响应周期中传递中断类型码。
这里切记去看一下INTA的图。
16,下面展示以下单重中断和多重中断
多重中断在单重中断下加了一下部分
17,DRAM2164是64K×1=2的16次方×1
(1)DRAM并不是有A0~A15,而它的引脚上只有A0~A7。这是动态RAM和其他RAM不一样的脚,只用它的一半。
(2)2164有4个128×128的矩阵,刷新刷了128行2ms刷完,刷新期是2ms,而每行是128×4=512个单元。(即每次刷新512个单元)
(3)2164芯片有RAS#(行选线)和CAS#(列选线),在刷新的时候只选择了行选。
(4)在刷新时是读,读的情况下,数据不进数据总线。
18,一片8237内部有四个独立的通道四,每个通道一次传递的最大长度64K字节。
19,在64KB这个数多次出现它代表(88/86访问的接口)接口的范围,它代表段的范围,另外还代表内存程序当中的段最大,还代表DMA C芯片每一次进行数据传输的最大的信息量 。
64KB=2的16次方
20,异步串行传送方式:采取帧的格式,是由1位起始位(低电平),5到8位数据位,1位旧校验位,还有1到2位停止位。
bps就是波特(每秒二进制位),bps,即比特率、比特/秒、位/秒、每秒传送位数,数据传输速率的常用单位。 含义:文件大小(例如文本或图像文件)通常以字节(Byte)为单位。一字节对应八比特。
21,汇编语言程序:首先经过编辑形成一个asm文件,经过汇编Masm.exe的翻译软件,转为.obj目标二进制代码文件。然后再把目标二进制代码文件.obj经过链接Link.exe转成.exe(可执行文件)。
22,.c经过编译形成.exe(可执行文件)。
23,无符号数
溢出:机器有位数限制、超出机器位数范围,CF=1表示溢出
8位机,范围:0~255(00H~FFH)
16位机,范围:0~65535(0000H~FFFFH)
24,有符号数
溢出:机器有位数限制、超出机器位数范围,OF=1
8位机,机器码范围:原码(反码):-127~+127(FFH~7FH)
补码:-128~+127(80H~7FH)
25,
26,-1的补码FFH,-2的补码FEH,
27,补码的补码就是原码
28,
29,压缩BCD:4位二进制表示一位十进制数
非压缩BCD:8位二进制表示一位十进制数。
30,
31,8259A可编程中断控制器的中断服务寄存器ISR用于
8259有3个8位寄存器ISR :服务(处理)谁谁为1 ,IMR屏蔽那位那位为1,IRR谁请求谁为1。
32,移位共性:①移位>1则用CL②移出位放CF
SHL SHR逻辑 ——补0
SAL SAR算术——左移右补0 右移左补符号位
ROL ROR不带CF移位
RCC RCR带CF移位
33,中断分为内部(软件){除法0-故障 ,单步1-异常,指令n-陷阱 }, 外部(硬件)
优先级除单步外内部优先级大于外部优先级 内>外>单步
除法优先级最高,单步优先级最低
34,外部INTR 可屏蔽中断,NMI不可屏蔽中断
35,CPU访问I/O接口时只使用16位地址线。因为外设接口的端口是64KB空间。
36,当CPU访问主存时A0-A19 20根地址线。因为它的主存空间是1MB=2的20次方。
37,8255,8259,8253三个芯片是D0-D7,8根数据线。
38,ready=0,CPU将插入等待周期;
39,8086CPU的Ready信号是由外部硬件8284产生的。
40,8086系统的存储器引入了分段的概念,每个段小于等于64KB,段和段之间可以是独立的。
41,构成一个最小8086CPU的微机系统除了8086,8282,8286至少还需要8284时钟发生器。
42,8086CPU的最小模式是单机系统。
8086CPU的最大模式是为实现多处理器系统。
43,逻辑地址是程序中的地址,物理地址是唯一代表内存单元的地址。
44,规则字,传2个字节(从偶地址读的一个字)需1个总线周期,非规则字,传2个字节(从奇地址)需2个总线周期。
45,寄存器是CPU的组成部分。
46,8086系统中,一个栈可用的最大存储空间是64KB。
47,6264是8K×8。
48,CPU读写信号线是RD非和WE非,6264芯片读写信号是OE非和WE非。
49,最大模式下的写和读信号线MEMW非和MEMR非。
最小模式下的读和写信号线WR非和RD非。
50,只有存储器芯片上是OE非,WE非,其余的都是WR非,RD非。
51,10的-9次方是ns。
52,8086/8088CPU的内存分配,两种地址变换方法。
88/86采用分段管理内存,每个段最大可达64K字节。
88/86访问主存时的最大物理地址空间是1MB。
88/86访问I/O时的最大物理空间是64KB。
53,8086是16位数据线!
54,1MB的一半是512K。
55,从奇地址读一个字叫非规则字,需要两个总线周期。
56,RAM是随机读写存储器。
57,使用Cache目的是提高CPU访问存储器的存取速度,减少处理器的等待时间。
58,求需要几个芯片组成存储器,并联是每一组数据线的位数。
59,存储器的技术指标有 存储容量,存取速度,存储器带宽。
60,SRAM的特点是只要电源不断开,SRAM中的信息将不会消失,不需要刷新。SRAM是易失性的。
61,微处理器进行读操作,就是把数据从主存或外设读到微处理器。
62,DRAM和SRAM都是易失性存储器,易失性就是掉点后数据容易消失。
63,堆栈操作在88/86操作中是以字为单位的。
64,INC Byte PTR [BX] 是字节+1
INC Word PTR [BX] 是字+1。
65,IN AL/AX ,port
OUT port ,AL/AX port:字节00H~FFH ,0~255 port :字0100H~FFFFH
66,OUT是把CPU中的一个字节或字送外设端口地址,叫输出也叫写外设端口。
IN是把接口的信息写进CPU,当传字节时给AL,传字时给AX。
port是端口地址。
67,OR AX,0FFH是立即数寻址
OR AX,[0FFH]是直接寻址
MOV AX,BX 寄存器寻址
MOV AX,[BX] 寄存器间接寻址
LEA BX,BUF LEA是取BUF的偏移地址给BX等价于 MOV BX,OFFSET BUF
MOV BX,BUF 是取BUF中的内容给BX
68,MOV AL,0 ;只对AL清零AL=0,MOV 不影响任何标志位
XOR AL,AL ;AL=0,CF=0
69,实现二倍关系:ADD AX,AX ;AX=2AX ,影响六个标志位
SAL AX,1 ;AX=2AX,移出位给CF
70,加1指令:ADD AL,1
INC AL ,不影响CF
71,做差 :SUB AX,CX ;AX=AX-CX
CMP AX,CX ;AX的值不变。
72,INC 21H中断上常用的几号功能: AH=01H(键盘接收) 02H(屏幕显示单个字符) 09H(屏幕显示字符串) 4CH(返回DOS环境) 0AH。
73,MOV AX,BX 寄存器寻址
MOV AX,[BX] 寄存器间接寻址
74,INT软件中断指令
75,中断的三个条件:①外设优先级高②8259没有屏蔽③CPU开中断IF=1,④没有不可屏蔽NMI中断请求和总线请求DMA。
76,75提到的是外中断,外中断的优先级INTR一般低于内中断(0型三型四型中断),不可屏蔽中
断NMI也比外中断高。
77,引脚的优先顺序:ready(T3时)>hold(T4时)>NMI(指令周期结束)>INTR(指令周期结束的时候)
78,STI是IF=1开中断 EOI是结束指令
79,中断的处理过程:
关中断(在此中断处理完成前,不处理其它中断)CLI
保护现场push
执行中断服务程序 执行子程序
恢复现场 pop
开中断sti
80,中断类型号在中断响应信号INTA非 的作用下送往CPU的。
81,中断是CPU执行子程序时由于外部或内部事件请求CPU暂停当前指令的执行转去执行中断服
务程序进行子程序响应处理 执行完后返回主程序的过程。
82,中断就是5个过程5个步骤。
83,实现中断功能的控制逻辑称为中断系统。
84,引起中断的设备或事件是中断源。
85,CPU内部运算产生的中断主要有(0型)除法出错、(4型)溢出中断、(3型)断点。
86,中断源的识别通常有查询中断和向量中断。
87,中断向量是中断服务程序的入口地址。
88,8086中断系统可处理256种不同的中断,对应中断类型码为0~255,每个中断类型码与一个中断相对应,每个中断向量需占用4个字节单元;两个高字节单元存放CS(中断入口段地址),两个低字节单元存放IP(中断入口偏移地址)。
89,子程序的中断要返回是Iret。
90,8259有五个部件(3个寄存器都是8位) IRR中断请求寄存器 IMR 中断屏蔽寄存器 ISR 中断服务寄存器 中断判优部
件 整个控制逻辑部件
91,容量与地址范围关系:
88/86主存容量1MB
中断向量表的1KB
I/O接口或主存段的容量64KB
SRAM6264芯片容量8k×8=8KB
DRAM2164芯片容量64K×1
2732是4K×8
92, 过程定义伪指令是 过程名 proc ..... 过程名 endp
93,用DW语句定义的一个字1234H语句 DW 1234H
用DB定义一个字1234H的语句 DB 34H ,12H
94,ADD BX,0FFH 把BX的高位屏蔽了
95,数据段定义BUF DB 3,4,'34','34'等价于‘3’,‘4’ 3的acall码是33H 4的acall码是34H
03H | <-0020H |
04H | |
33H | |
34H | |
96,两个变量做差实质上是两个地址做差,BUF-ADD=变量对应的地址单元个数之差。
97,TYPE:回送该变量类型表示的字节数,DB是1,DW是2,DD是4,DQ是8
98,$:是地址表示当前定义的下一个单元地址。
99,A是41H ,1的双字是00000001H 双字占四个字节。
100,每一条指令的四个组成部分:指令,标号变量,助记符,操作数参数或者注释。
101,结束程序指令并返回操作系统的方法有两种:
PUSH DS
XOR AX,AX
PUSH AX
RET
MOV AH,4CH
INT 21H ;返回DOS环境
暂时更新到这里~
下期再见!~