微机原理考点.docx
- 文档编号:4186325
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:18
- 大小:22.57KB
微机原理考点.docx
《微机原理考点.docx》由会员分享,可在线阅读,更多相关《微机原理考点.docx(18页珍藏版)》请在冰豆网上搜索。
微机原理考点
一.作业
1.1简述计算机和微型计算机经过了那些主要的发展阶段?
计算机:
第一代为电子管计算机时代;
第二代为晶体管计算机时代;
第三代为集成电路计算机时代;
第四代为大规模集成电路计算机时代;
微型计算机:
第一代为抵挡8位微处理器和微型计算机;
第二代为中挡8位微处理器和微型计算机;
第三代为16位微处理器和微型计算机;
第四代为32位微处理器和微型计算机;
第五代为64位微处理器和微型计算机;
2.1简述8086和80486CPU内部结构有哪些部件组成,并阐述它们结构上的同。
8086由执行单元EU和总线接口部件组成;
80486由总线接口部件、指令预取部件、指令译码部件、控制和保护测试单元部件、整数执行部件、分段部件、分页部件,以及浮点运算部件和高速缓存(Cache)管理部件。
2.9简述时钟周期,总线周期和指令周期之间的关系。
时钟周期:
微处理器执行指令的最小时间单位,又称T状态。
它通常与微机的主频有关;
总线周期:
CPU对存储器或I/O端口完成一次读/写操作所需的时间;
指令周期:
CPU执行下一条指令所需的时间。
指令周期有若干个总线周期组成,不同的指令执行的时间都不同。
1.
(1)用两种方法从44H端口输入数据到AL;
a.INAL,44H
b.MOVDX,44H
INAL,DX
(2)用两种方法将56H输出到98H端口。
a.MOVAL,56H
OUT98H,AL
b.MOVAL,56H
MOVDX,98H
OUTDX,AL
2.求AX,BX中两个无符号数之差的绝对值,并将结果存在当前数据段2800H单元中。
MOVDI,2800H
CMPAX,BX
JCDELAY
SUBAX,BX
MOV[DI],AX
HLT
DELAY:
SUBBX,AX
MOV[DI],BX
HLT
3.用逻辑指令完成下列操作:
(1)将BL的最低2位置1,其他位不变;
ORBL,03H
(2)将DI的最高3位清0,其他位不变;
ANDDI,1FFFH
(3)将CX的最低位和最高位取反,其他位不变;
XORCX,8001H
(4)测试DX的最低2位是否为0,全为0则转到DELAY出执行。
TESTDX,0003H
JZDELAY
.
.
DELAY:
……
4.设计一个延时子程序DELAY。
DELAYPROC
PUSHCX
PUSHDI
PUSHF
MOVCX,6000H
AB0:
MOVDI,5000H
AB1:
DECDI
JNZAB1
LOOPAB0
POPF
POPDI
POPCX
RET
DELAYENDP
(延时:
5000H*6000H)
5.已知某外设端口A地址为288H,端口B为28AH,编程以A端口输入数据再从B端口输出,程序一直运行,按任意键退出。
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,288H
INAL,DX
MOVDX,28AH
OUTDX,AL
……
MOVAH,01H
INT16H
JESTART
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
二.实验
实验二
1.用汇编语言编写一个计算“3+5”的加法程序,执行后显示计算结果。
codesegment
assumecs:
code
start:
moval,33h
movdl,35h
adddl,al
subdl,30h
movah,02h
int21h
movah,4ch
int21h
codeends
endstart
2.用汇编语言编写一个求AX与BX寄存器中两个无符号数之差的绝对值,将结果放在DX中。
(文件名用自己的名字扩展名为.ASM)
codesegment
assumecs:
code
start:
cmpax,bx
jcdelay
subax,bx
movdx,ax
hlt
delay:
subbx,ax
movdx,bx
hlt
codeends
endstart
实验三
1.编写一个加法程序,完成“1325+9839”要求用ASCII码形式将加数与被加数存放在数据区DATA1和DATA2中,并将相加的结果显示出来。
DATASEGMENT
DATA1DB‘5’,‘2’,‘3’,‘1’
DATA2DB‘9’,‘3’,‘8’,‘9’,‘0’
DATAENDS
STACKSEGMENTPARASTACK‘STACK’
DB64DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES:
DATA
STARTPROCFAR
PUSHDS
MOVAX,00H
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVES,AX;初始化程序
CLD;DF为0,为正向串
MOVSI,OFFSETDATA1;取数据1352所在存储单元的偏移地址
MOVDI,OFFSETDATA2;取数据9839所在存储单元的偏移地址
MOVCX,04H;计算次数→CX
MOVAX,00H;将暂存标志寄存器的内容的AH寄存器清“0”
LOP1:
LODSDATA1;取串操作,[SI]→AL,SI+1→SI
SAHF;AH中的内容送标志寄存器
ADCAL,[DI];将操作数带进位做加法
AAA;ASCII码运算的十进制加法调整
LAHF;将标志寄存器的内容暂存在AH寄存器
ORAL,30H;计算值拼成ASCII码→AL
STOSB;存串操作,AL→[DI],DI+1→DI
LOOPLOP1;循环结束否?
未结束转到LOP1
ANDAH,01H;结束将最高位的进位标志→AH
ORAH,30H;将最高位的进位拼成ASCII码
MOV[DI],AH;并送到DATA2的最后一个字节中
MOVAH,02H;调用DOS中断的02h功能
MOVCX,05H;显示数据位→CX
LOP2:
MOVDL,[DI];将要显示数据送DL中
INT21H;调用DOS的21H号中断
DECDI;显示数据所在存储单元地址减“1”
LOOPLOP2;显示完否?
未显示完转到LOP2
RET;显示完返回DOS状态
CODEENDS
ENDSTART
实验四
1.分类统计字数组ARRAY中正数、负数和零的个数,并分别存入内存字变量POST、NEGA和ZERO中,数组元素个数保存在数组的第一个字中。
DATASEGMENT
ARRAYDW8;元素个数
DW230,-1437,26,-31,0,3458,0,10
POSTDW0
NEGADW0
ZERODW0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
XORAX,AX;用AX作为正数的计数器
XORBX,BX;用BX作为负数的计数器
XORDX,DX;用DX作为零的计数器
MOVCX,ARRAY;用CX来进行循环计数
JCXZDONE;考虑数组的元素个数为0的情况
LEADI,ARRAY+2;;用指针DI来访问整个数组
AGAIN:
CMPWORDPTR[DI],0;与0做比较
JGHIGH;大于0,为正数
JEEQUAL;等于0
INCBX;小于0,为负数,负数个数增1
JMPNEXT
HIGH:
INCAX;正数个数增1
JMPNEXT
EQUAL:
INCDX;0的个数增1
NEXT:
INCDI
INCDI
LOOPAGAIN
DONE:
MOVPOST,AX;把各类的统计数保存到内存单元中
MOVNEGA,BX
MOVZERO,DX
MOVAX,4C00H;结束程序返回DOS
INT21H
CODEENDS
ENDSTART
实验五
1.设计编写一个程序,要求执行时显示'DOyouloveme?
Y/N'输入y(ASCII=79H)就停止执行,返回DOS状态,按其它键则重复显示'DOyouloveme?
Y/N'。
datasegment
bufdb'Doyouloveme?
Y/N',0ah,0dh,'$'
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movdx,offsetbuf
movah,9
int21h
movah,1
int21h
cmpal,'y'
jeexit
cmpal,'Y'
jeexit
movdl,0ah
movah,2
int21h
movdl,0dh
movah,2
int21h
jmpstart
exit:
movah,4ch
int21h
codeends
endstart
实验六
1.设计编写一个程序,从键盘上输入一串字符,计算每个字符出现的次数,并在屏幕上显示这个数字。
DATASEGMENT
BUFFERDB100
DB?
DB100DUP(?
)
CHARSDB'INPUT:
$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAINPROCFAR
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
START:
MOVDX,OFFSETCHARS
MOVAH,9
INT21H
MOVDX,OFFSETBUFFER
MOVAH,0AH
INT21H
MOVDL,0AH
MOVAH,2
INT21H
MOVDL,0DH
MOVAH,2
INT21H
MOVSI,OFFSETBUFFER
INCSI
MOVAL,[SI]
INCSI
MOVDL,[SI]
MOVDH,[SI]
MOVDI,SI
MOVCL,AL
MOVCH,0
MOVBL,1
MOVBH,0
DECCL
GO1:
INCSI
CMPDL,[SI]
JNETO1
INCBL
TO1:
LOOPGO1
CALLOUTPUT
MOVBL,1
TO5:
INCDI
DECAL
CMPAL,1
JETO3
CMPDH,[DI]
JETO5
MOVDL,[DI]
MOVSI,DI
MOVCL,AL
MOVCH,0
DECCL
GO2:
INCSI
CMP[SI],DL
JNETO2
INCBL
MOV[SI],DH
TO2:
LOOPGO2
CALLOUTPUT
MOVBL,1
JMPTO5
TO3:
CMPDH,[DI]
JETO4
MOVDL,[DI]
MOVBL,1
CALLOUTPUT
TO4:
RET
MAINENDP
OUTPUTPROC
PUSHAX
PUSHCX
PUSHF
MOVAH,2
INT21H
MOVDL,20H
MOVAH,2
INT21H
MOVAL,BL
MOVAH,0
MOVCL,10
DIVCL
ADDAH,30H
ADDAL,30H
MOVCH,AH
MOVDL,AL
MOVAH,2
INT21H
MOVDL,CH
MOVAH,2
INT21H
MOVDL,0AH
MOVAH,2
INT21H
MOVDL,0DH
MOVAH,2
INT21H
POPF
POPCX
POPAX
RET
OUTPUTENDP
CODEENDS
ENDMAIN
实验七
1.设计编写一个程序,要求键盘输入单字符,但不显示,而是将该单字符的ASCII码加1后再显示出来(即输入A显示B,输入B则显示C……),程序一直运行,按ESC键则退出。
codesegment
assumecs:
code
start:
movah,8
int21h
cmpal,1Bh
jeexit
addal,1
movdl,al
movah,2h
int21h
jmpstart
exit:
movah,4Ch
int21h
codeends
endstart
三.平时听课
1.8086为16位微处理器,数据总线16位,地址总线20位。
2.系统复位后,CPU从FFFF0H地址开始重新执行程序。
3.使AX清零:
MOVAX,0;SUBAX,AX;XORAX,AX。
4.设DS=1000H,[12000H]=67H,[12001H]=45H;MOVAX,[2000H]则AX=4567H。
5.用两条指令完成将标志的低8位中ZF(D6),CF(D0),设置为1,其他位变为0:
AH:
01_0_0_1则AH可为01000001=41H;所以:
MOVAH,41H
SAHF
6.比较DI,SI,如DI
CMPDI,SI
JCdelay
JZAD1
.
.
delay:
……
HLT
AD1:
……
HLT
7.MOVAX,8889H
SARAX,1则AX=C444H,CF=1;
MOVBX,56H
RCLBX,1则BX=00ADH,CF=0。
8.设32位数在DX:
AX中,实现32位数整个左移1位:
SALAX,1
RCLDX,1
9.用五条指令完成将当前数据段中3000H~3100H单元的内容,对应的传送到当前附加段5000H~5100H单元中去:
CLD
MOVCX,101H
MOVSI,3000H
MOVDI,5000H
REPMOVSB
10.将附加段中4000H~5000H单元的内容全部清零:
CLD
MOVCX,1001H
MOVDI,4000H
MOVAL,0H
REPSTOSB
或
STD
MOVDI,5000H
MOVAL,0H
MOVCX,1001H
REPSTOSB
11.设源串在1000H:
2000H开始的100个字节单元中,要求将源串送到3000H:
1020H开始的目的串中:
MOVAX,1000H
MOVDS,AX
MOVSI,2000H
MOVAX,3000H
MOVES,AX
MOVDI,1020H
CLD
MOVCX,64H
REPMOVSB
12.比较两个串,发现有不同的字符时则停止比较:
CLD
MOVCX,100
MOVSI,2500H
MOVDI,1400H
REPECMPSB
13.按ESC键退出:
CMPAL,1BH
JEEXIT
.
.
EXIT:
MOVAH,4CH
INT21H
14.按任意键退出:
MOVAH,1H
INT21H
JNEEXIT
.
.
EXIT:
MOVAH,4CH
INT21H
四.CPU各标志的含义
标志10
溢出标志OFOVNV溢出非溢出
方向标志DFDNUP递减递增
中断允许IFEIDI允许不允许
符号标志SFNGPL负的正的
零标志ZFZRNZ零非零
辅助进位AFACNA有进位无进位
奇偶校检PFPEPO偶数个计数个
进位标志CFCYNC有进位无进位
五.伪指令segment,assume,end,DB,DW,proc,PTR操作符
1.段定义:
段名segment
段名ends
2.段分配:
assume段寄存器:
段名[,段寄存器:
段名,…]
3.程序结束:
end[标号]
4.变量定义:
[变量名]DB/DW表达式或nDUP(操作数)
5.过程定义:
过程名proc属性
RET
过程名endp
6.PTR运算符(可用来修改变量或标号的类型属性):
类型PTR表达式
六.8086CPU的内部结构组成及各寄存器的用法
1.内部结构:
执行单元EU和总线接口部件BIU
2.段寄存器用法:
A.通用数据寄存器:
AX,BX,CX,DX;AX作为累加器,BX作为基址寄存器,CX作为计数寄存器,DX作为数据寄存器
B.指针及变址寄存器:
SP,BP,SI,DI;通常用来存放存储器单元的16位偏移地址;SP用来指示堆栈顶的偏移地址,称为堆栈指针;BP用来存放堆栈中的一个数据区的“基址”的偏移量,称为基址指针;SI,DI称为变址寄存器,用来存放当前数据所在存储单元的偏移地址,在串操作指令中,SI用来存放源操作数地址的偏移量,称为源变址寄存器,DI用来存放目标操作数地址的偏移量,称为目标变址寄存器。
C.段寄存器:
CS,DS,SS,ES
D.指令指针:
IP:
IP的内容总是指向BIU将要取的下一条指令代码的16位偏移地址
E.标志寄存器:
FR:
16位只是用9位;其中6位为状态标志位,用来反映算术运算或逻辑运算结果的状态;3位控制位,用来控制CPU的操作。
七.8086CPU的读写操作的理解
八.Debug命令
D命令
功能:
显示数据段中指定单元或单元块的内容。
E命令
功能:
修改内存单元内容
命令A
功能:
进行程序段汇编
命令U
功能:
从代码段中指定的位置对机器代码进行反汇编,得到相应的助记符形式的指令。
命令R
功能:
R
R命令就用来显示所有寄存器内容,包括标志寄存器中的8个状态标志位的状态,并在最后提示下一条将要执行的指令。
RAX
R后面跟上一个寄存器的名称,这时R命令就用来显示这个寄存器的内容并等待修改。
RF
功能是显示和修改标志位状态。
命令G
功能:
运行程序
命令T
功能:
单步执行程序
九.逻辑地址与物理地址理解与计算
1.逻辑地址:
由段基址和偏移地址两部分构成,它们的是无符号16位二进制数;逻辑地址是用户进行程序设计师采用的地址
2.物理地址:
CPU访问内存是使用的地址:
物理地址=段基址*16+偏移地址
一十.数值转换
1._H=_D_D=_H_H=_B_D=_B
一十一.负数的补码表示的计算
1.-B=B的反码+1
一十二.各段寄存器的理解和用途
1.CS:
代码段寄存器,用来存放当前使用的代码的段基址
2.DS:
数据寄存器,用来存放当前使用的数据段的段基址
3.ES:
附加段寄存器,用来存放当前使用的附加段的段基址
4.SS:
堆栈段寄存器,用来存放当期使用的堆栈段的段基址
一十三.堆栈及操作过
1.先进后出
2.入栈PUSHAX
PUSHBX
PUSHCX
PUSHF
出栈POPF
POPCX
POPBX
POPAX
一十四.用一条逻辑指令将寄存器其他位清零,置1,取反
1.清零:
ANDd,0
2.置1:
ORd,1
3.取反:
XORd,1
一十五.指令的组成
1.[标号:
][前缀]助记符[操作数][;注释]共四部分组成
一十六.DOS系统功能调用
1.1号功能:
键盘输入并显示
MOVAH,01H
INT21H
2.2号功能:
屏幕显示一个字符
MOVDL,‘字符’
MOVAH,02H
INT21H
3.8号功能:
键盘输入但不显示输入字符
MOVAH,08H
INT21H
4.9号功能:
屏幕显示字符串
MOVDX,字符串的偏移地址
MOVAH,09H
INT21H
5.4CH功能:
返回DOS操作系统
MOVAH,4CH
INT21H
一十七.BIOS调用
1.按任意键退出:
MOVAH,01H
INT16H
JNEEXIT
….
EXIT:
MOVAH,4CH
INT21H
一十八.奇存储体,偶寄存体
1.最后一位为奇则为奇存储体,偶则为偶存储体
一十九.子程序定义
1.定义:
过程名PROC属性(NEAR,FAR)
…
RET
过程名ENDP
2.调用:
CALL过程名
二十.编程
二十一.程序分析
二十二.I/O指令应用
1.IN:
输入指令:
IN累加器AX或AL,端口地址
INAL,08H
或MOVDX,2000H
INAX,DX
2.OUT:
输出指令:
OUT端口地址,累加器
OUT50H,AX
或MOVAL,68H
MOVDX,3000H
OUTDX,AL
或MOVAX,3A3BH
OUT20H,AX
二十三.指令系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 考点
![提示](https://static.bdocx.com/images/bang_tan.gif)