微机原理复习总结,考试题及答案

  • 格式:doc
  • 大小:177.50 KB
  • 文档页数:24

微机原理 1、8086从功能上分成两大部分:总线接口单元BIU(负责8086CPU与存储器和I/O设备间的信息传送。),执行单元EU (负责指令的执行。) 2、执行工作方式:8位微处理器(串行工作),8086(并行工作)。 3、8086微处理器的执行环境:地址空间,基本程序执行寄存器,堆栈,I/O端口。 4、基本的程序执行寄存器(8086):8个通用寄存器、1个指令指针寄存器、1个标志寄存器、4个段寄存器 5、8086的16位通用寄存器是: AX(累加器)BX(基址寄存器)CX(计数) DX(数据):数据寄存器 SI(源变址)DI(目的变址)BP(基址指针)SP(堆栈指针):指针寄存器 6、8086的8位通用寄存器是: AL BL CL DL(低8位) AH BH CH DH(高8位 ) 7、16位的段寄存器:CS、SS、DS、ES 8、16位FLAGS寄存器包含一组状态标(SF,ZF,OF,CF,AF,PF)、一个控制标志(DF)和两个系统标志(IF,TF) 9、下一条将要执行指令的PA=(CS)内容左移4位+(IP) 10、逻辑地址的形式为:段寄存器:偏移地址;物理地址=段寄存器(DS/CS/SS/ES)左移四位+偏移地址 11、寻址方式:(1)立即数寻址方式(2)寄存器寻址方式(3)直接寻址方式(4)寄存器间接寻址方式(5)寄存器相对寻址方式[立即方式,寄存器方式,存储器方式] 12、最小组态:就是系统中只有一个8088/8086微处理器,所有的总线控制信号,都是直接由CPU产生的,系统中的总线控制逻辑电路被减到最少,该模式适用于规模较小的微机应用系统。最大组态:系统中可以只有一个微处理器,也可以有两个或两个以上的微处理器,其中一个为主处理器,即8086/8088CPU,其它的微处理器称之为协处理器,它们是协助主处理器工作的。系统的控制信号由8288总线控制器给出。 13、总线分类:地址总线,数据总线,控制总线 14、总线传输过程的四个阶段:申请阶段,寻址~,传输~,结束阶段。 15、CPU寻址外设可以有两种方式: 存储器对应输入输出方式和端口寻址的输入输出方式。 16、基本I/O操作由T1、T2、T3、TW、T4组成,占用5个时钟周期。 17、CPU与外设数据传送的方式:无条件传送方式、查询传送~、中断~、直接数据通道~。 18、8237的编程步骤 (1) 输出主清除命令; (2) 写入基与现行地址寄存器; (3) 写入基与现行字节数寄存器; (4) 写入模式寄存器; (5) 写入屏蔽寄存器; (6) 写入命令寄存器; (7) 写入请求寄存 19、CPU和输入/输出设备之间传送的信息有哪几类? 1)、数据2)、状态信息(ready、empty、busy)3)、控制信息 20、CPU响应中断的条件: (1)、设置中断请求触发器(2)、设置中断屏蔽触发器(3)、中断是开放的(4)、现行指令执行结束 21、中断优先权次序:(由高到低) 内部中断 NMI INTR 单步执行 单步执行(除外) 22、中断向量地址 = 4*N ,其中N为中断类型码 23、若Intel 8253的地址为04H~07H,要使得计数器1工作在方式0,仅用8位二进制计数,计数值为128,初始化程序为 MOV AL,50H ;控制字=50H=0101 0000H, OUT 07H,AL ;往控制字寄存器输入控制字 MOV AL,80H ;计数初值=80H OUT 05H,AL ;往计数器1输入初值 24、若要用计数器0,工作在方式1,计数值的初值为5080,按BCD码计数。(端口地址为0F8H~0FBH) MOV AL,33H OUT 0FBH,AL MOV AL,80H OUT 0F8H,AL MOV AL,50H OUT 0F8H,AL 25、8255A有三种基本的工作方式: 1、方式0:基本输入输出方式,A,B,C三个端口均可 2、方式1:选通输入输出方式,A ,B两个端口均可 3、方式2:双向传送方式,只有A端口才有 12、例题:某系统中8253的端口地址为40H~43H, CLK=1.19MHZ,计数器0工作在方式3,每秒18.2次输出连续方波信号,计数器1工作在方式2,15.12us一次,连续输出单脉冲,计数器2工作在方式3,每秒产生1KHZ的连续方波。写出它们的初始化编程? 计数器0工作在方式3,每秒18.2次输出连续方波信号:n=(1/18.2) × 1.19 × 106=65385=FF69H 计数器1工作在方式2,15.12us一次,连续输出单脉冲:n=15.12 × 10-6 × 1.19 × 106 =18=12H 计数器2工作在方式3,每秒产生1KHZ的连续方波:n=1/1000 × 1.19 × 106 =1190=04A6H 计数器0:00110110B=36H 计数器1:01010100B=54H 计数器2:10110110B=B6H 初始化编程: (1)、 MOV AL,36H OUT 43H,AL ;写入计数器0控制字 MOV AX,65385 OUT 40H,AL ;写入计数器0计数值的低8位 MOV AL,AH OUT 40H,AL ;写入计数器0计数值的高8位 (2)、 MOV AL,54H OUT 43H,AL ;写入计数器1控制字

MOV AL,12H OUT 41H,AL ;写入计数器1计数值 (3)、 MOV AL,B6H OUT 43H,AL ;写入计数器2控制字 MOV AX,1190 OUT 40H,AL ;写入计数器2计数值的低8位 MOV AL,AH OUT 42H,AL ;写入计数器2计数值的高8位

13、只有MOV、PUSH、POP指令允许以段寄存器作为操作数,目的操作数不能是立即数和CS,单操作数指令中的操作数不能是立即数 14、例1 计算(V-(X*Y+Z - 540))/X其中X、Y、Z、V均为16位带符号数,已分别装入X、Y、Z、V单元中,要求计算结果的商存入R单元,余数存入W单元。 data segment x dw 1234h y dw 3456h z dw 5678h v dw 7834h r dw ? w dw ? data ends code segment assume cs:code, ds:data begin: mov ax,data mov ds,ax;//建立ds段地址 mov ax,x;//被乘数存入ax imul y;//x*y mov cx,ax;//乘数的低位字存入cx mov bx,dx;//乘数的高位字存入bx MOV AX,Z ;加数Z存入AX CWD ;把Z扩展成双字 ADD CX,AX ;乘积的低位字与Z的低位字相加 ADC BX,DX ;乘积与Z的高位字和低位的进位相加 SUB CX,540 ;(X*Y+Z)的低位字减去540 SBB BX,0 ;(X*Y+Z)的高位字减去低位的借位 MOV AX,V ;被减数V存入AX CWD ;把V扩展成双字 SUB AX,CX ;V的低位字与(X*Y+Z-540)的低位字相减 SBB DX,BX ;V的高位字与(X*Y+Z-540)的高位字相减 IDIV X ;(V-(X*Y+Z-540))/X mov r,ax;//商存入r单元 mov w,dx;//余数存入w单元 mov ah,4ch int 21h;//返回dos code ends;//代码段结束 end begin;//汇编结束 14、设X、Y都是字节变量,请编一程序完成下式的计算 y=1 X>0 ;Y=0 X=0;

Y=-1 X<0; data segment x db -5 y db ? data ends code segment assume cs:code, ds:data start:mov ax,data mov ds,ax cmp x,0 jg loop1;//有条件转移大于 je loop2;//有条件转移等于于 mov y,-1 jmp exit;//无条件转移 loop1:mov y,1 jmp exit loop2:mov y,0 exit:mov ah,4ch int 21h code ends end start 15、 编程计算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF为首址的数据区,每个数据占两个字节,和数SUM也为两个字节。 data segment buf dw 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 sum dw 0 data ends code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov ax,0 lea bx,buf;//装入有效地址 mov cx,20;//将循环次数放入cx lop:add ax,[bx];//[bx]为偏移地址 inc bx;//增加1 inc bx;//->2 loop lop mov sum,ax mov ah,4ch int 21h code ends end start