微机原理及应用习题集库 ....................................................................................................... 2
一、填空........................................................................................................................... 2 二、单项选择题 ............................................................................................................... 6 三、 程序分析题(每小题6分,共24分) ....................................................... 14 四、判断题(在对的后面画√,错的后面画×): ..................................................... 22 五:分析判断题(判断对错,并指出错误原因) ..................................................... 28 六、简答题: ................................................................................................................. 30 七、程序题..................................................................................................................... 34 八、接口芯片的综合编程题 ......................................................................................... 43
(一)8255A .......................................................................................................... 43 (二)8259A .......................................................................................................... 47 (三). 其它端口编程题 ...................................................................................... 48
不得用于商业用途
仅供个人参考
微机原理及应用习题集库
(请认真复习4、5、7、10、11章后的习题)
一、填空
1. 87的原码是 0101 0111B=57H ,补码是 01010111B ,反码
01010111B 。
2. SP总是指向 栈顶 ,若原先SP=2000H,SS=2000H,问CPU执行指令PUSH
AX后,AL内容压入物理地址为 21FFEH 存储单元中,AH内容压入物理地址为 21FFFH 存储单元中。
3. 以BX基址寻址,约定的段寄存器是 DS ,以BP基址寻址,约定的段寄
存器是 SS ,变址寻址约定的段寄存器是 DS 。
4. 假设某个字的值是1234H,其低位字节地址是20H,高位字节地址是21H,那
么该字地址是 20H 。
5. 8086/8088的状态标志有 6(SF、PF、AF、OF、ZF、CF) 个。 8086/8088系统中,存储器是分段的,每段最大长度是 K 字节,段内偏移地址从 0000H 到 FFFFH 。
6、CPU访问存储器进行读写操作时,通常在 T3 状态去检测READY ,一旦检
测到READY无效,就在其后插入一个 Tw 周期。
不得用于商业用途
仅供个人参考
7、汇编语言源程序中的语句有三种类型,它们是 指令 语句, 伪指令
语句, 宏指令 语句。
8、、8086CPU寻址外设可以有两种方式,一种是 直接 寻址方式,另一种是 间
接 寻址方式。
9、CPU与外设之间的连接部件称为 I/O接口 ,它的基本功能是 在
CPU与外设之间起缓冲作用 。
10、C PU从主存取出一条指令并执行该指令的时间称( ),它通常用若干个( )
来表示,而后者又包括若干个( )。 ①指令周期 ②机器周期 ③时钟周期 答:1-2-3
14、数据的输入/输出指的是CPU与 I/O接口 进行数据交换。
15.已知X= -120,则X的原码(用八位二进制表示)是____________,补码(用八位二进制表示)是____________。
16、8088中的指令INT n用( N )指定中断类型。 17、8088的ALE引脚的作用是( 地址锁存允许 )。
18.一片8255A端口A有( 3 )种工作方式,端口B有( 2 )种工作方式。 19.当8255A口工作在方式1输出时,A口输入信号联络线的名称是 IBF ,输出信号联络线的名称是 OBF(带上划线) 。
20. 端口A可以工作在3种工作方式中的任意一种,端口B只能工作在方式0或方式1;(对错题)
21.可编程并行接口芯片8255A共有( A )、( B )、( C )、和( 控制 )四个端口。
22. 8088的当前代码段、数据段和堆栈段段地址分别由( )、( )和( )提供。
不得用于商业用途
仅供个人参考
17、微型计算机由( )、( )和( )三大部分组成。
20.8086/8088中级别最高的中断类型是(非屏蔽中断),其中断类型码为( 2 )。 21. -3的原码是(1000 0011),反码是(1111 1100),补码是( 1111 1101)。
22. 以BX基址寻址,约定的段寄存器是( DS ),以BP基址寻址,约定的段寄存
器是( SS )。 23. 一片8259A最多只能接收( 八)级 中断。三片8259A最多能接收(22)级中断。 24. 8259A中的中断服务寄存器中存放的是(正在处理的中断请求0)。 25. 十六进制数30A转换为二进制是( 0011 0000 1010B )。
26. 微型计算机由( 微处理器 )、( 存储器 )和( I/O接口电路 )组成。 27. 计算机记忆装置的基本单元是(触发器)。
28. 一个最基本的总线周期是由(4)个时钟周期组成的。
29. 所谓最小模式,是指(在系统中只有8086/8088一个微处理器)。
30. 在8086/8088的引脚中,与总线有关的两个引脚是(HOLD)和(HLDA)。 31. 中断向量是(中断处理子程序的入口地址),每个中断类型对应一个中断向量。 32. MOV AX, [BX+DI+50]的寻址方式是(基址加变址的相对寻址) 33. 8086最多能处理( 256 )种中断。
34. -7的原码是(1000 0111),反码是(1111 1000),补码是( 1111 1001)。 35. 8259A中的中断屏蔽寄存器中存放的是(对各级中断请求的屏蔽信息)。
36. 在8088读存储器周期中,采样Ready线的目的是(测试外设数据是否准备
好 )。 37. . 微机系统中,ROM只能( 读 ),RAM可( 随机存取 ) 。 38. 寄存器是由(触发器)组成的。
不得用于商业用途
仅供个人参考
39. 一个机器周期是(执行一条指令的时间),机器周期又可分为(取指周期)和(执行
周期)。 40. 所谓最大工作模式,是指(在系统中有二个以上的微处理器)。 41. 对于地址/数据复用总线,在T1时刻,其传输的信息是(地址信号)。
42. 在8086/8088的引脚中,与中断有关的三个引脚是(NMI)、(INTR)和(INTA)。 43. 所谓断点,就是指(响应中断时,主程序中当前指令下面的下一条指令的地址)。
44. 8088中的指令INT n用( n )指定中断类型。
45. .8086最大模式下产生控制信号利用芯片 8288 总线控制器,最小
/最大模式下,外部地址锁存器利用芯片 8282 ,外部数据收/发器利用芯片 8286 。
46. 子程序可以由 Proc 语句定义,由 ENDP 语句结束,属性
可以是 NEAR 或 FAR 。 47. 段定义伪指令语句用 SEGMENT 语句表示开始,以 ENDS 语句表示结
束。 48. 逻辑地址为2000H:1234H的存储单元的物理地址是 。21234H
49. 取指令时,段地址由 寄存器提供,偏移地址由 寄存器提供。CS和IP 50. CPU在执行OUT DX,AL指令时, 寄存器的内容送到地址总线上, 寄
存器的内容送到数据总线上。DX和AL 51. 数据的输入/输出指的是CPU与 进行数据交换。I/O端口
52. 中断矢量就是中断服务子程序的 入口地址 ,在内存中占有 4 个存储单元,
其中低地址存储单元存放的是 偏移地址 ,高地址存储单元存放的是 段地址 。 53. 中断返回指令是 RET ,该指令将堆栈中保存的断点弹出后依次装入 CS
寄存器和 IP 寄存器中,将堆栈中保存的标志装入 标示寄存器FR 中。 54. CPU响应8259A中断,在 INTA 引脚上输出 二 个负脉冲,在第 二 个负脉冲期间读入中断类型码。
不得用于商业用途
仅供个人参考
二、单项选择题
1. 若补码用8位二进制数表示,则可表示的最大正数是( 4 )。 (1)28 (2)28-1 (3)27 (4)27-1
2 向外设端口输出一个数据的指令是( 1 )
(1) OUT DX,AL (2)IN DX,AL (3)OUT AL,DX (4)IN AL,DX 3.完成同指令XCHG AX,BX相同功能的指令或指令序列是(3 )。 ① MOV AX,BX ② MOV BX,AX ③ PUSH AX POP BX
④ MOV CX,AX MOV AX,BX MOV BX,CX
1.当有两个8286时,可为(2 )CPU提供数据总线。
① 8088 ② 8086 ③ 80386 ④ 80486 2.3片8259A级联,最多可管理( 3 )级中断。
① 24 ②. 23 ③. 22 ④. 21
3.响应NMI请求的必要条件是( 3 )。
① IF=1 ② IF=0 ③ 一条指令结束 ④ 无INTR请求
5.测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方
法是( 2 )。
① TEST BL,4FH ③ AND BL,4FH JZ NEXT JZ NEXT ② XOR BL,4FH ④ OR BL,4FH JZ NEXT JZ NEXT
6.8086/8088的一个典型总线周期需要( 1 )个T状态。 ① 4 ② 3 ③ 2 ④ 1
不得用于商业用途
仅供个人参考
7.指令指针寄存器是( 1 )。
① IP ② SP ③ BP ④ PSW
8.下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为( )。
TEST BH,01H
____1_____K1
① JNE ② JZ ③ JS ④ JC 9.下面的数据传送指令中,错误的操作是( 4 )。
① MOV SS:[BX+DI],1000H ② MOV DX,1000H ③ MOV WORD PTR[BX],1000H ④ MOV DS,2000H
10.8255A工作在方式1时,端口A和端口B作为数据输入/输出使用,而端口C的各位分别作为端口A和端口B的控制信息和状态信息。其中作为端口A和端口B的中断请求信号的分别是端口C的()。
(A)PC4和PC2 (B)PC5和PC1 (C)PC6和PC7 (D)PC3和PC0 答: D
1.8255芯片具有 C 端口。
A)2 B)3 C)4 D)5 2.8255的 C 一般用作控制或状态信息传输。
A)端口A B)端口B C)端口C D)端口C的上半部分 3.对8255的端口A工作在方式1输入时,C口的 C 一定为空闲的。 A)PC4、PC5 B)PC5、PC6 C)PC6、PC7 D)PC2、PC3 4.对8255的C口D3位置1的控制字为 B 。 A)00000110B B)00000111B C)00000100B D)00000101B 5.8255工作在方式1的输出时,OBF信号表示 B 。
A)输入缓冲器满信号 B)输出缓冲器满信号 C)输入缓冲器空信号 D)输出缓冲器空信号
3.在PC/XT机中键盘的中断类型码是09H,则键盘中断矢量存储在 B 。 A)36H~39H B)24H~27H C)18H~21H D)18H~1BH 4.3片8259A级联起来,可管理 C 级中断。
A)24 B)23 C)22 D)20 E)16 F)15 5.若8259A工作在优先级自动循环方式,则IRQ4的中断请求被响应并且服务完毕后,优先权最高的中断源是 B 。
A)IRQ3 B)IRQ5 C)IRQ0 D)IRQ4
7.PC/XT机中若对从片8259A写入的ICW2是70H,则该8259A芯片的IRQ5的中断矢量存储的地址是 D (注:先算类型号,再*4得到)
A)75H B)280H C)300H D)1D4H
8.当向8259A写入的操作命令字OCW2为01100100时,将结束 E 的中断服务。
不得用于商业用途
仅供个人参考
A)IRQ0 B)IRQ1 C)IRQ2 D)IRQ3 E)IRQ4 F)IRQ5 G)IRQ6 H)IRQ7
1.下面是关于可编程中断控制器8259A的叙述,其中错误的是( 3 )。
①.8259A具有优先级管理的功能 ②.8259A具有辨认中断源的功能
③.8259A具有向CPU提供中断向量的功能 ④.一片8259A可管理8级中断
2.由8088CPU组成的PC机的数据线是( 4)。
① 单向线 ② 16条单向线 ③ 双向线 ④ 16条双向线
3.为8088CPU提供地址总线需要(4 )。
① 一个8286 ② 两个8286 ③ 两个8282 ④ 三个8282 4.一个8259可提供(2 )个类型号。
① 1 ② 8 ③ 16 ④ 5.响应INTR请求的必要条件是(2 )。
① IF=0 ② IF=1 ③ TF=0 ④ TF=1
6.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是( 1)。
① MOV AL,00H ② AND AL,00H ③ XOR AL,AL ④ SUB AL,AL 7.当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是( 4 )。
① 表示结果中含1的个数为偶数 ② 表示结果中含1的个数为奇数
③ 表示该数为偶数 ④ 表示结果中低八位含1的个数为偶数 8.在汇编语言程序中,对END语句的叙述正确的是(3 )。 ① END语句是一可执行语句
② END语句表示程序执行到此结束 ③ END语句表示源程序到此结束 ④ END语句在汇编后要产生机器码 9.执行下列指令后,正确的结果是(2 )。 MOV AL,100 MOV BL,-2
③ AL=H ① AL=100H
BL=82H BL=02H
④ AL=100H ② AL=H
BL=0FEH BL=0FEH
10.当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是( 3 )。 ① JLE ② JNL ③ JNLE ④ JL 1.寄存器间接寻址方式中,操作数在 中。 C
A)通用寄存器 B)堆栈 C)存储单元 D)段寄存器
不得用于商业用途
仅供个人参考
2. 寻址方式的跨段前缀不可省略。A
A)DS:[BP] B)DS:[SI] C)DS:[DI] D)SS:[BP] 3.假设(SS)=2000H,(SP)=0012H,(AX)=1234H,执行PUSH AX后, =12H A)20014 B)20011H C)20010H D)2000FH 4.若要检查BX寄存器中的D15位是否为1,应该用 指令。 C A)OR BX,1000H B)TEST BX,1000H JNZ NO JNZ YES
C) XOR BX,1000H D)AND BX,1000H JZ YES JNZ YES
5.用BP作基址变址寻址时,操作数所在的段是当前 。C
A)数据段 B)代码段 C)堆栈段 D)附加段 .若主程序段中数据段名为DATA,对数据段的初始化操作应为 。 B
A)MOV AX,DATA B)MOV AX,DATA MOV ES,AX MOV DS,AX C)PUSH DS D)MOV DS,DATA 3..EXE文件产生在 之后。 D
A)汇编 B)编辑 C)用软件转换 D)连接 4.定义双字变量的定义符是 。 C
A)DW B)DQ C)DD D)DT 5.下列存储器操作数的跨段前缀可省略的是 。 B
A)DS:[BP] B)SS:[BP] C)ES:[BX] D)ES:[SI]
3.堆栈操作时,段地址由 寄存器指出,段内偏移量由 寄存器指出。C、G A)CS B)DS C)SS D)ES E)DI F)SI G)SP H)BP
4.若当前DS的内容为2000H,则偏移量为1000H单元的地址可表示为 。B A)2000H.1000H B)21000H C)1000H∶2000H D)3000H 3.8086CPU在执行IN AL,DX指令时,DX寄存器的内容输出到 上。 A A)地址总线 B)数据总线 C)存储器 D)寄存器 2. 8086CPU复位后,CPU执行的第一条指令的起始地址应是 B
A) ROM,FFFF0H B) RAM,FFFF0H C) ROM,FFFFH D) RAM,FFFFH 3. 下述指令,正确的指令是 d (设BUF是字节变量,LAB为标号)
a.MOV BX,AL b.MOV BX,BUF
不得用于商业用途
仅供个人参考
c.MOV BX,LAB d.MOV BX,OFFSET BUF 4 .下述中断,优先权级别最高的中断是 a a.NMI b.INTR c.单步中断 d.INT n 6. 8086CPU的40根引脚中,有 c 个是分时复用的。 A)1 B)16 C)21 D)24 7、用BP作基址变址寻址时,操作数所在的段是当前 C 。 A)数据段 B)代码段 C)堆栈段 D)附加段 8.执行下列指令:
STR1 DW ‘NO’ STR2 DB 14 DUP(?) CONT EQU $-STR1 MOV CX,CONT MOV AX,STR1 HLT
后寄存器CL的值是 D 。
A)0FH B)0EH C)12H D)10H 9、接口的基本功能是 C 和 D 。
A)输出锁存 B)输入锁存 C)输出缓冲 D)输入缓冲
不得用于商业用途
仅供个人参考
10、堆栈操作时,段基址由 C 寄存器指出,段内偏移量由 SP 寄存器指出。 A) CS B) DS C) SS D) ES 11. 下列四条指令中错误的是 D 。
A)MOV AX,[SI] B)MOV AX,[BP+DI] C)MOV AX,[DI] D)MOV AX,[BP—DI]
12、在8086/8088系统中,约定用于形成堆栈段数据物理地址的寄存器有 A 。 A)SS,SP,BP B)SS,SP,BX C)DS,BX,BP D)DS,SP,BP 13、.EXE文件产生在 D 之后。
A)汇编 B)编辑 C)用软件转换 D)连接 15.指令指针寄存器是(1 )。 ① IP ② SP ③ BP ④ PSW
16.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是(1 )。 ① MOV AL,00H ② AND AL,00H ③ XOR AL,AL ④ SUB AL,AL
17.下列指令执行后总是使CF=0,OF=0的是(1 )。 ① AND ② NEG ③ NOT ④ INC
不得用于商业用途
仅供个人参考
22.下面的数据传送指令中,错误的操作是( 1)。 ① MOV SS:[BX+DI],1000H ② MOV DX,1000H
③ MOV WORD PTR[BX],1000H ④ MOV DS,2000H
23.下面指令执行后,变量DAB中的内容是(3 )。 DAW DW 2A05H DAB DB 0FAH :
MOV AL,BYTE PRT DAW SUB DAB,AL ① 0DAH ② 0FAH ③ 0F5H ④ 0D0H
24.执行下列指令后,正确的结果是(2 )。 MOV AL,100 MOV BL,-2 ① AL=100H BL=02H ② AL=H BL=0FEH ③ AL=H BL=82H ④ AL=100H BL=0FEH
25.设数据段中已有: DA1 DB 12H,34H DA2 DW 56H,78H
下面有语法错误的语句是(2 )。 ① ADR1 DW DA1 ② MOV DA1+1,AX
③ MOV BYTE PTR DA2+1,AL ④ MOV WORD PTR DA1+1,AX 27. DATA SEGMENT
TA1 DW 0102H,0304H,0506H
不得用于商业用途
仅供个人参考
TA2 DB 02H,03H,04H :
MOV BX,DS:[0006H] AND BX,0FFH AND BH,[BX]
上述指令序列运行后,BX的内容是(4 )。 ① 0605H ② 0402H ③ 0606H ④ 0204H
32.IBM PC机的8088处于最大模式,其总线仲载是由(2 )裁决。 ① 非RQ/非GT ② 82 ③ 8087 ④ 8288
33.8088的一个总线周期可交换(3 )字节。 ① 4 ② 2 ③ 1 ④ 1/8
不得用于商业用途
仅供个人参考
三、 程序分析题(每小题6分,共24分)
1. A DW 1234H B DW 5678H :
PUSH A PUSH B POP A POP B
试回答:①上述程序段执行后(A)=_______,(B)=______ ②设执行前SP=200H,执行后SP=____________
2AB.读下面程序段,请问,在什么情况下,本段程序的执行结果是AH=0?
BEGIN: IN AL,5FH TEST AL,80H JZ BRCH1 MOV AH,0
JMP STOP BRCH1: MOV AH,0FFH STOP: HLT
答: 3A. 现有下列程序段:
MOV AX,6540H MOV DX,3210H MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL
试问上述程序段运行后,
(AX)=_____________ (BL)=_____________ (DX)= _____________ 4A现有下列程序段
MOV AL,60H MOV BL,20H
不得用于商业用途
仅供个人参考
STC
ADC AL,BL
问程序执行后,AL= BL= CF=
.已知(DS)=09lDH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。下列各指令或程序段分别执行后的结果如何? (1)??????? MOV CL,20H[BX][SI] (2)??????? MOV [BP][DI],CX (3)??????? LEA BX,20H[BX][SI]
MOV AX,2[BX]
(4)??????? LDS SI,[BX][DI]
MOV [SI],BX
(5)??????? XCHG CX,32H[BX]
XCHG 20H[BX][SI],AX
答(1) (CX)=56F6H; (2) (09226H)=5678H; (3) (AX)=1E40H; (4) (1E4F6H)=0024H;
(5) (09226H)=1234H,(AX)=5678H. 1 .假设寄存器AX=1234H,DX=0A000H
MOV BX,0 MOV CX,BX SUB CX,AX SBB BX,DX MOV AX,CX MOV DX,BX
上述程序段执行后AX= 0FDCFH ,DX= 60000H
程序功能是 对原AX、DX中的值求补码,因为取补码指令就相当于用0
不得用于商业用途
仅供个人参考
减去此操作数,见书本P122 .
4.分析下面程序段, MOV AL,200 SAR AL,1 MOV BL,AL MOV CL,2 SAR AL,CL ADD AL,BL
试问程序段执行后(BL)=B=_E4H_(AL)=B=F9H
5.程序段如下:
BLK1 DB 46,84,34,-5,20,122,73 :
MOV CX,7 LEA S1,BLK1
NEXT: MOV AL,[SI] INC SI
TEST AL,81H LOOPZ NEXT MOV BL,[SI] :
请回答程序段运行后:(AL)=_____46_______ (BL)=____84________
14.对于下面的数据定义,各条MOVE指令单独执行后,有关寄存器的内容是什么? FLDB DB
TABLEA DW 20DUP(?) TABLEB DB ‘ABCD’ MOVE AX,TYPE FLDB MOVE AX,TYPE TABLEA MOVE CX,LENGTH TABLEA MOVE DX,SIZE TABLEA MOVE CX,LENGTH TABLEB 解答:
不得用于商业用途
仅供个人参考
AX=0001H AX=0002H CX=0014H DX=0028H CX=0001H。
19.读下面程序段,请问:在什么情况下,本段程序的执行结果是AH=0? BEGIN: IN AL,5FH TEST AL,80H JZ BRCHl MOV AH,0 JMP STOP BRCHl: MOV AH,0FFH STOP: HLT
解答:AL中的最高位为1时。 20.读程序:
START: IN AL,20H MOV BL,AL IN AL,30H MOV CL,AL MOV AX,0 ADLOP: ADD AL,BL ADC AH,0 DEC CL JNZ ADLOP HLT 请问: (1)本程序实现什么功能? (2)结果在哪里?
解答:完成20H*30H,结果在AX中。
21.请编一程序段完成AX*l0的任务(要求不准用乘法指令做)。 解答: MOV BX,AX MOV CL 2 SHL AX, CL ADD AX,BX SHL AX ,1 22.编程序使:
(1)AX寄存器低4位清零。 (2)BX寄存器低4位置“1”。 (3)CX寄存器低4位变反。
(4)用TEST指令测试DL寄存器位3、位6是否同时为0,若是,将0送DL;否则l送DH。
解答 :1,AND AX ,0FFF0H
不得用于商业用途
仅供个人参考
2,OR BX ,000FH 3,XOR CX ,000FH 4,TEST DL ,48H JZ LOOP MOV DH,1 HLT
LOOP :MOV DL ,0 HLT
23.编一程序段,完成符号函数(-128≤x≤127): 1 (x.>0)
y= 0 (x=0) -1 (x<0) 假设x的值存放在DATAl中,y的值存放在DATA2中。 解答: START :MOV AL ,DATA1 AND AL,AL JGE BIGR MOV AL,0FFH MOV DATA2.AL HLT BIGR:JE EQUL MOV AL,1 MOV DATA2,AL HLT
EQUL:MOV DATA2,AL HLT
24.设AX寄存器中有一个16位二进制数,编一程序,统计AX中“l”的个数,统计结果送CX中。
解答: START :MOV CX ,0 LOOP: SUB AX,0 JZ STP SAL AX,1 JNC NOD INC CX NOD:JMP LOOP STP:HLT
25.编一子程序利用XLAT指令把十六进制数转换成ASCII码。假设ASCII码 存放在以 DAT1为首地址的数据区中,对应的16进制数放在以DAT2为首地址的数据区中,转换结果送以DAT3为首地址的数据区中。 解答:MAIN :PUSH BX PUSH SI PUSH DI
不得用于商业用途
仅供个人参考
PUSH CX PUSH AL PUSH DS
START:MOV BX,DATA1 MOV SI ,DATA2 MOV DI DATA3 MOV CX ,16 NEST:LODSB XLAT DATA1 STOSB LOOP NEST POP DS POP AL POP CX POP DI POP SI POP BX RET
1. 设AX=0FFH,执行AND AX,86H 后,AX=? AX=86H
2.设AX=1000H,DX=2000H,CX=3000H,SP=1234H 执行 PUSH CX PUSH DX PUSH AX 后,SP=? 再执行 POP CX POP DX POP AX
后,AX=?,DX=?,SP=?
答: SP=122EH
AX=3000H,DX=2000H,SP=1234H(错一题扣2分,错2题扣3.5分)
不得用于商业用途
仅供个人参考
7.请完成如下程序段,使它完成求|AX-BX|,结果放在AX的功能。 AX,BX JC SUB AX,BX AA1 AA:SUB ,
MOV AX,BX AA1:HLT
CMP AX,BX(1分) JC AA (1分) SUB AX,BX
JMP AA1(2分)
AA:SUB BX(1分) , AX(1分)
MOV AX,BX AA1:HLT
下面是多字节加法程序,第一个数是8A0BH,第二个数是D705H。请填写出正确结果。(7分)
DATA SEGMENT
FIRST DB , ,0H SECOND DB , DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
MOV DS,AX
不得用于商业用途
仅供个人参考
MOV CX, MOV SI,0
NEXT: MOV AL,SECOND[SI]
ADC FIRST[SI],AL INC SI LOOP NEXT MOV AL,0
ADC AL, MOV FIRST[SI],AL MOV AH,4CH INT 21H CODE ENDS
END START
不得用于商业用途
仅供个人参考
四、判断题(在对的后面画√,错的后面画×):
1、段内转移指令执行结果要改变IP、CS的值。 (× ) 2、PUSH CS。 (√ ) 3、OUT 2000H,AL (×)
4、 MOV AH,BX ( 错 )
5、8088 中,取指令和执行指令可以重叠操作。( √ ) 6、MOV [BX], [SI] ( × ) 7、8088CPU用逻辑地址1234H:5678H访问时,可交换一个字。(√) 8、 MOV BYTE PTR[BX],1000 (× ) 9、MOV 5, AL (× ) 10、 MOV AX,[SI+DI] (× )
2、8088 的数据可以存放在几个不连续的段中。(√ ) 4. ADD 15H,BX ( 错 )
5、REP是指令前缀,重复操作的条件是CX≠0。 ( 对 ) 6、POP CS (错)
7、 MOV CS,AX ( 错 ) 8、MOV [BX],[SI] (错) 9、IN AL,2000H (错)
10、8086 中,取指令和执行指令可以重叠操作。( 对 )
11.当8086CPU内标志寄存器中的IF=0时,意味着禁止CPU响应所有类型的中断。 ( 错 )
12.一个外设最多可含有控制端口、数据端口、状态端口三种类型的端口。 ( 对 ) 13.?? 若BUF是变量名,指令LEA BX,BUF和指令MOV BX,OFFSET BUF是等
效的。 (对)
14.?? OUT 3FCH,AL指令是正确的。 (错,16位地址端口号要先赋给DX) 15.?? 8255A A口工作在方式1输入,B口工作在方式0输出的方式控制字是0011
×00×B。 (错) 16.?? 若SS=2000H,SP=1000H,执行指令PUSH AX后,AX内容压入21000H
字单元中。 (错)
不得用于商业用途
仅供个人参考
17.?? 所谓寻址方式是指CPU执行指令时寻找操作数的方式。 (对)
18.?? 8086CPU所有外部中断,仅INTR需申请中断的外设提供中断类型码。(错) 19.一个外设最多含有控制端口和数据端口。 (错,还有状态端口)
20. 8086CPU内部F标志寄存器的所有标志位均可用指令事先置1或清0。 ( 对,用
SAHF设置标志指令,见书本P119) )
??21. 执行IN AL,DX指令时,DX的内容送到数据总线上。
( 错 )
22、段内转移指令执行结果要改变IP、CS的值。 ( 错 ) 23. 8255工作在方式1的输出时,OBF信号表示输出缓冲器满信号。 ( 对 ) 24. 有数据定义NUM DB ‘123456’,经汇编后,NUM占有3字节存储单元。 ( 错,应是6个字节的存储单元,每一个存的是对应的字符ASCII码值 ) 25.
OUT
DX,AL
指令的输出是
16
位操作数。
( 错 )
26. 若SP =1000H,则执行指令PUSH AX后,(SP)=0FFEH。 ( 对 )
27. 8088CPU对内存读/写1个字均需两个总线周期。 (对 ) 30. . MOV AH,BX ( 错 ) 31. . ADD 15H,BX ( 错 ) 32. . MOV CS,AX ( 错 )
33. . MOV AX,[SI][DI] ( 错,不能同时使用两个变址寄存器 )
不得用于商业用途
仅供个人参考
34. MOV AX, [CX] (错 ) 35. MOV [1000H],[2000H] ( 错 ) 36. . MOV BYTE PTR[BX],1000H ( 对 ) 37. SAR指令左补零 ( 错 )
38. 执行CMP指令后,操作数的值会改变 ( 错 )
39. 8088的Ready信号是由外部硬件产生的。………………( 对 ) 40.
/
及HOLD、HLDA信号是与系统中其它总线主设备有关的信
号。……………( 对 ) 41. 8088的( 对 )
42. 8088 的数据可以存放在几个不连续的段中。…………………………………………( 对 )
43. 、8088 中,取指令和执行指令可以重叠操作。…………………………………………( 对 )
44. 8088 的可屏蔽中断的优先权高于非屏蔽中断。………………………………………( 错 )
45. 多个外设可以通过一条中断请求线,向CPU发中断请求。……………………………( 对 )
46. 8255A中端口A使用的是INTR,
及
等线是端口C的
信号可用作中断矢量的读选通信号。……………………………………
线。………………………( 对 ),见工作方式1的图
47. 、中断服务程序可放在用户可用的内存的任何区域。…………………………………( 错 )
48. 8086系统的存储器中各段的大小固定为KB,同时各段之间可以重叠。 ( 对 )
不得用于商业用途
仅供个人参考
49. 堆栈操作所访问的段是由SS和ES所指定。 ( 错 ) 50. 在存储器连接过程中,应注意避免地址重叠。 (错 ) 51. 内部中断的优先权总是高于外部中断。 (对 ) 52. 两片8259A级连后可管理16级中断。 ( 错 ) 53. 8259A所管理的中断源中,优先级低的中断源不可能中断优先级高的中断服务子程序。 ( 错 )
54. 若8259A中断屏蔽字OCW1为00H,则8259A所管理的8级中断全被屏蔽. ( 错 )
55. 只要8259A所管理的中断源没有被屏蔽,则任何中断源的中断请求都能得到CPU的响应和服务。( 错 )
56. .给8255 C口PC3按位置位字是06H。 ( 错 ) 57. .当8086CPU内标志寄存器中的IF=0时,意味着禁止CPU响应所有类型的中断。 ( 错 )
58. 一个外设最多可含有控制端口、数据端口、状态端口三种类型的端口。 ( 对 )
59. .在8086微机系统中,通常外设的中断申请接至8259A的IR上,8259A的中断申请线接至CPU的INTR。 ( 对 )
60. 8086CPU对内存读/写1个字的操作仅需一个总线周期。 ( 错 ) 61. 总线控制器8288专门用于8086最大模式下产生控制信号。 (对 ) 62. .两片8259A采用主从连接方式时,最多可接收15级中断请求。 ( 对 ) 63. 执行IN AL,DX指令时,DX的内容送到数据总线上。( 错,到AL ) . 段内转移指令执行结果要改变IP、CS的值。 ( 错 )
65. 若SS=2000H,SP=1000H,执行指令PUSH AX后,AX内容压入21000H字单元中。 ( 对 )
不得用于商业用途
仅供个人参考
66. 在8086/8088中,内中断源的级别均比外中断源级别高。( 错) 67. 8088CPU用逻辑地址1234H:5678H访问时,可交换一个字。(错 ) 68. .在PC机上可用地址400H来访问I/O端口。( 错 )
69. .当8255的PA口方式1输出时,若外设有负脉冲回答,则PC3定会上升为高电平。(对 )
70. .CPU响应HOLD请求的条件之一是指令周期结束。(对 )
)
??
若BUF是变量名,指令LEA BX,BUF和指令MOV BX,OFFSET BUF
是等效的。
2.?? OUT 3FCH,AL指令是正确的。
3.?? 8255A A口工作在方式1输入,B口工作在方式0输出的方式控制
字是0011×00×B。 4.?? 若SS=2000H,SP=1000H,执行指令PUSH AX后,AX内容压入21000H
字单元中。 5.?? 所谓寻址方式是指CPU执行指令时寻找操作数的方式。 (对) 6.?? 8086CPU所有外部中断,仅INTR需申请中断的外设提供中断类型
码。(错) 7.?? 8086CPU没有直接对TF标志位置1或清0的指令。
1、8088的Ready信号是由外部硬件产生的。 A.正确 B.不正确
2、/及HOLD、HLDA信号是与系统中其它总线主设备有关的信号。 A.正确 B.不正确
3、8088的信号可用作中断矢量的读选通信号。 A.正确 B.不正确
不得用于商业用途
仅供个人参考
4、8088 的数据可以存放在几个不连续的段中。 A.正确 B.不正确
6、8088 的可屏蔽中断的优先权高于非屏蔽中断。 A.正确 B.不正确
7、多个外设可以通过一条中断请求线,向CPU发中断请求。 A.正确 B.不正确
12、串行异步接口的双向工作方式指的是在串行接口上可同时发送和接收串行数据。 A.正确 B.不正确
14、中断服务程序可放在用户可用的内存的任何区域。 A.正确 B.不正确
不得用于商业用途
仅供个人参考
五:分析判断题(判断对错,并指出错误原因)
1.下面哪些指令是非法的?(假设OPl,OP2是已经用DB定义的变量) (1)CMP l5,BX (2)CMP OPl,25 (3)CMP OPl,OP2 (4)CMP AX,OPl 答:(1) CMP 15,BX
非法,两个操作数不能一个为字,一个为字节 (2)CMP OP1,25 正确 (3)CMP OP1,OP2 正确 (4)CMP AX,OP1
非法,两操作数不能一个为字,一个为字节
2.假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列指令中哪些是非法的?它们的错误是什么? (1)MOV BP,AL
(2)MOV WORD_OP[BX+4*3][DI],SP (3)MOV WORD_OPl,WORD_OP2 (4)MOV AX,WORD_OPl[DX] (5)MOV SAVE_WORD,DS
(6)MOV SP,SS:DATA_WORD[BX][SI] (7)MOV [BX][SI],2
(8)MOV AX,WORD_ OPl+WORD_OP2 (9)MOV AX,WORD_ OPl-WORD_OP2+100 (10)MOV WORD_ OPl,WORD_ OPl-WORD_OP2 答:(1)MOV BP,AL
非法,BP为16位 AL为八位 (2)MOV WORD_OP[BX+4*3][DI] ,SP 正确
(3)MOV WORD_OP1 ,WORD_OP2 非法,两个操作数不能都是变量 (4)MOV AX , WORD_OP1[DX]
非法,[DX]应改为[BX],[BP],[SI]或[DI],则为寄存器相对寻址。 (5)MOV SAVE_WORD ,DS
非法,未指明数据段地址DS的偏移量 (6)MOV SP,SS:DATA_WORD[BX][SI]
非法,SS与[BX],[SI]不匹配,SS的偏移量用SP (7)MOV [BX][SI] ,2 正确
不得用于商业用途
仅供个人参考
(8) MOV AX,WORD_OP1+WORD_OP2 正确
(9) MOV AX, WORD_OP1—WORD_OP2+100 正确 (10)MOV WORD_OP1,WORD_OP1—WORD_OP2 非法
3.假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处: (1)ADD VAR1,VAR2 (2)SUB AL,VAR1 (3)JMP LAB[SI] (4)JNZ VARl (5)JMP NEAR LAB 答:(1) ADD VAR1,VAR2
ADD指令中,目的操作数必须是寄存器或存储单元。 (2)SUB AL,VAR1
AL为8位的,而VAR为字变量16位 (3)JMP LAB [SI]
格式不对,LAB处应为一偏移量,而不是标号。 (4)JNZ VAR1
JNZ 为非零转移,应转移到某个程序段,故后面应为一个标号。 (5)JMP NEAR LAB
段内直接转移,格式应为 JMP NEAR PTR LAB
不得用于商业用途
仅供个人参考
六、简答题:
1、设一个8字节数据存放在内存中,它的起始单元的物理地址为223A0H,若当前的段基址DS=2000H,由该数据起始单元的偏移地址是多少? 答:为23A0H
1、假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据 21H的物理地址是多少? 解答: 07H 21H
<—原栈顶20100 存放数据21H的物理地址是200FFH
2、 8086CPU与8088CPU有哪些相同之处?又有哪些区别?
答:两者的内部结构基本相同,内部都采用16位字进行操作及存储器寻址,两者的软件完全兼容,程序的执行也完全相同,两种处理器都封装在相同的40脚双列直插组件(DIP)中。
但它们的外部性能有区别。8086是16位数据总线,而8088是8位数据总线,在处理一个16位数据字时,8088需要两步操作而8086只需要一步。
3、中断入口地址表的功能是什么?已知中断类型码分别为84H,它们的中断入口在中断入口地址表的什么位置上?
答:中断入口地址表的功能是存放中断服务程序的入口地址。
84H(1000 0100 B)的中断入口在中断入口地址表的0010 0001 0000 B,即0210 H处,即其偏移地址放在0210H和0211H两个单元中,而段地址放在0212H和0213H两个单元中。
4、什么叫总线周期?8086CPU的一个总线周期包括多少时钟周期,什么情况下要插入TW等待周期?插入多少个TW取决于什么因素?
答:总线周期是CPU或其他总线控制设备访问一次存储器或I/O端口所需的时间。 在总线周期中需要利用总路线。
8086CPU的一个标准总线周期包括4个时钟周期。当4个时钟周期不能完成所规定的操作时,可以插入一个或多个等待时钟周期TW。
插入多少个TW取决于所访问的存储器或者I/O设备是否准备就绪,此信号由引脚READY发出。
5、假如8086系统中的CS=2000H,IP=2100H其物理地址应是多少?
不得用于商业用途
仅供个人参考
答:物理地址为20000H+2100H=22100H。
6、若将某8259A芯片的ICW2定义为39H,则该8259A的8级中断类型码是多少? 答:39H即为:0011 1001,故其类型码最低的为0011 1000,即38H;最高为0011 1111,即3FH。
故其中断类型码为:38H---3FH
7、8086 CPU从功能上分为几部分?各部分的功能是什么? 答:8086CPU从功能上分外两大部分,一是执行部件(EU),二是总线接口部件(BIU)。 执行部件是由以下四部分组成:(1)4个通用寄存器AX,BX,CX,DX。(2)4个专用寄存器BP,SP,XI,DI。(3)标志寄存器FR。(4)算术逻辑部件ALU。功能是负责执行所以的指令,向总线接口部件(BIU)提供指令执行的结果数据和地址,并对通用寄存
器和标志寄存器进行管理。 总线接口部件(BIU)由以下部件组成:(1)四个段寄存器,代码段寄存器,数据段寄存器,附加段寄存器,堆栈段寄存器。(2)指令指针寄存器。(3)地址加法器。(4)指令领队列。功能:执行外部总线周期,负责存储器与I/O端口传送数据。也就是负责CPU与存储器和外设之间的信息交换。
8、 什么是最大模式(或最大组态)?什么是最小模式(或最小组态)?用什么方法将8086/8088置于最大模式和最小模式?
答:最小模式,即系统中只有一个微处理器,所有的总线控制信号都直接由8086/8088,因此,系统总线控制电路被减到最小。
最大模式,即系统里包括两个或多个微处理器,主处理器就是8086/8088,其它均为协助主处理器工作的协处理器。它主要用于中等规模或大型的8086/8088系统中。
将8086/8088的第33脚接地时,系统处于最大模式,接+5V时,为最小模式 9、 什么是地址锁存器?8086/8088系统中为什么要用地址锁存器?锁存的是什么信息?
答:地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。8086/8088数据和地址总线采用分时复用操作方法,即用同一总线既传输数据又传输地址。当微处理器与存储器交换信号时,首先由CPU发出存储器地址,同时发出允许锁存信号ALE给锁存器,当锁存器接到该信号后将地址/数据总线上的地址锁存在总线上,随后才能传输数据。
10、 8086/8088系统中的8286是什么器件?起什么作用? 答:8286为总线驱动器(收发器,双向数据缓冲器),当一个系统中所含外设接口较多时,用来增强数据总线的驱动能力。 11、. 指出下列各指令中源操作数的寻址方式 ? 1)MOV DI,100 2)MOV [SI],AX
3)ADD AX, [BX+SI] 4)MOV DX, [1000H] 5)AND DH,[BP+4]
不得用于商业用途
仅供个人参考
12、.什么叫做中断源?1片8259A最多能管理几级中断?3片8259A级联起来,最多可管理几级中断? 答:
13、有符号定义语句如下: BUFF DB 1,2,3,‘123’ EBUFF DB 0
L EQU EBUFF-BUFF 问L的值为多少? 解答:L=6
14、类型号为17H中断的中断处理子程序的入口地址为1234:5678H,求该入口地址在中断向量表中如何放置?
答:0段中5CH、5DH、5EH和5FH四个单元中的值分别为:78H、56H、34H、12H。
15、8086/8088系统中引入了哪些中断?是如何引入的?
答:通过NMI引脚引入非屏蔽中断;通过INTR引脚引入可屏蔽中断;通过指令 INT 引入软中断。
16、标志寄存器FR的状态标志有何作用?写出6个状态标志。
答:FR的状态标志反映上次运算结果的状态(1分); CF,PF,AF,ZF,SF,OF(1分) 17、.8086/8088系列违纪在存储器中寻找存储单元时,逻辑地址由哪两个部分组成的? 答:由段地址和偏移地址两部分构成。
5.设IBM PC微机内存中某个单元的物理地址是12345H,试完成下列不同的逻辑地址表示:
(1)?????? 1234H:___H (2)?????? ____H:0345H
答:(1)1234H:05H (2) 1200H:0345H 18、.假设某程序执行过程中,(SS)=0950H,(SP)=H,试问该用户程序的堆栈底部物理地址是多少?
答:(SS)*10H+(SP)=095H 19、设堆栈段寄存器(SS)=0E4BH,程序中设堆栈长度为200H个字节。试计算出堆栈底部字单元物理地址,堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。
答:物理地址为:3E4B0H, SP的初始值为200H,指向的物理地址为:3E6B1H.。 3.什么叫做中断源?
5. 某外部可屏蔽中断的类型码为12H,它的中断服务程序的入口地址为1000H:2000H,
不得用于商业用途
仅供个人参考
请将中断服务程序入口地址填在中断向量表中。
答:12H中断对应的中断向量放在向量表的0000:0048H处,其中0048H、0049H、004AH与004BH这4个单元中的值分别为00H、20H、00H、10H
2.某外部可屏蔽中断的类型码为12H,它的中断服务程序的入口地址为1000H:2000H,请将中断服务程序入口地址填在中断向量表中.
不得用于商业用途
仅供个人参考
七、程序题
1. 编制程序段,要求实现:将0404H单元开始的256单元清零。 ( 6分)
答: CLD ;清方向标志 LEA DI,0404H ;DI指向字串地址 MOV CX,256 ; 共256个字节 XOR AX,AX ;AX清零 REP STOSB HLT
2.程序分析题。现有下列程序段:(6分) MOV SP, 2000H MOV AX, 3000H
MOV BX, 5000H :
PUSH AX PUSH BX POP AX
试回答:上述程序段执行后SP=___1FFEH______
(AX)=_____5000H______,(BX)=_____5000H______
3.程序分析题。现有下列程序段: (6分) MOV AX,6540H MOV DX,3210H MOV CL,04
SHL DX,CL ;DX=2100H MOV BL,AH ;BL=65H SHL AX,CL ;AX=5400H
不得用于商业用途
仅供个人参考
SHR BL,CL ;BL=06H
OR DL,BL ;DL=06H,故DX=2106H 试问上述程序段运行后,
(AX)=__5400H___________ (BL)=____06H_________ (DX)= _____2106H________
4.请完成如下程序段,使它完成求|AX-BX|,结果放在AX的功能。 CMP AX,BX(1分) JC AA (1分) SUB AX,BX
JMP AA1(2分)
AA:SUB BX(1分) , AX(1分)
MOV AX,BX AA1:HLT
5. 要求从外设71号中取一个数M,判断其值是否在10和20之间,即10≤M<20.如果M≥20H,则送0FFH给外设73H;如果M<10,则送00H给外设73H; 如果10≤M<20,则送88H给外设73H.
。要求编写完整源程序实现上述功能(9分) 答:程序如下:
; ---------程序段定义,不可省略 C1 SEGMENT
START: IN AL, 71H CLC
CMP AL, 10 JC LP1 CMP AL, 20 JC LP2 MOV BL, 0FFH
不得用于商业用途
仅供个人参考
LP3: MOV AL, BL
OUT 73H, AL
INT 21H
MOV AH, 4CH LP1: MOV BL, 00 JMP LP3 LP2: MOV BL, 88H JMP LP3 C1 ENDS END START
6. 编一程序段,要求实现:求两个多字节数之和,这两个数在10050H地址开始的内存单元中,连续存放,低位在小地址一端,结果放在 这两个数之后。设这两个多字节数均为8个字节。(8分)
答: MOV AX, 1000H MOV DS, AX MOV SI, 50H MOV DI, 58H MOV BX, 60H MOV CX, 4 CLC
AA: MOV AX, [SI] ADC AX, [DI] MOV [BX], AX PUSHF
ADD SI, 2 ADD DI, 2 ADD BX, 2 POPF
LOOP AA HLT
7.要求编写完整源程序实现:求1+2+3+····+100的和,并将累加和保存在AX中。(7分)
不得用于商业用途
仅供个人参考
答:程序如下:
; ------堆栈段定义,本段定义可省略 S1 SEGMENT STACK
DB 100 DUP(0) S1 ENDS
; ---------程序段定义,不可省略 C1 SEGMENT
ASSUME: CS:C1, SS:S1
START: MOV CX, H ;即将100给CX
XOR AX,AX CLC
A1: ADC AX,CX
LOOP A1 MOV AH,4CH INT 21H C1 ENDS
END START
8. ? 以NUM为首址的存储区中存有若干个字型数,其长度存于NUM1字节单元。求
出数据中的最大值,存入NUM2字单元。
MOV SI, OFFSET NUM MOV CX, NUM1 AA2: MOV AX, [SI] AA3: INC SI
CMP AX, [SI] JC AA2 LOOP AA2 HLT
不得用于商业用途
仅供个人参考
9.设AX寄存器中有一个16位二进制数,编一程序,统计AX中“1”的个数,统计结果送CX中
解答: START :MOV CX ,0 LOOP: SUB AX,0 JZ STP SAL AX,1 JNC NOD INC CX NOD:JMP LOOP STP:HLT
10.编一程序段,完成符号函数(-128≤x≤127):
1 (x.>0)
y= 0 (x=0) -1 (x<0)
假设x的值存放在DATAl中,y的值存放在DATA2中。 解答: START :MOV AL ,DATA1 AND AL,AL JGE BIGR MOV AL,0FFH MOV DATA2.AL HLT BIGR:JE EQUL MOV AL,1 MOV DATA2,AL HLT
EQUL:MOV DATA2,AL HLT
9-1.编一程序段,实现下列功能
MOV AX, X CMP AX, 0 JGE AA1 MOV BL, 0AH JMP AA3 AA1: JZ AA2
不得用于商业用途
仅供个人参考
MOV AL, 01H JMP AA3 AA2: MOV AL, 0H AA3: MOV Y, AL HLT
11.假设在数据段X_SEG、附加段Y_SEG和堆栈段Z_SEG中分别定义了字变量X,Y和Z。试编制一完整的程序计算
XX+Y+Z 答: X-SEG SEGMENT X DW ? X-SEG ENDS Z-SEG SEGMENT Z DW ? Z-SEG EMDS Y-SEG SEGMENT Y DW ? Y-SEG ENDS CODE SEGMENT MAIN PROC FAR
ASSUME ES:Y-SEG,CS:CODE,DS:X-SEG,SS:Z-SEG START PUSH DS SUB AX AX PUSH AX
MOV AX ,Y_SEG MOV ES ,AX MOV AX,Z_SEG MOV SS,AX MOV AX,X_SEG MOV DS,AX MOV AX,DS:X MOV BX,ES:Y ADD AX BX JO OVERFLOW MOV BX ,SS:Z ADD AX,BX JO OVERFLOW MOV DS:X,AX
不得用于商业用途
仅供个人参考
OVERFLOW :RET MAIN ENDP CODE ENDS END START
12.读下面程序段,请问:在什么情况下,本段程序的执行结果是AH=0? BEGIN: IN AL,5FH TEST AL,80H JZ BRCHl MOV AH,0 JMP STOP BRCHl: MOV AH,0FFH STOP: HLT
解答:AL中的最高位为1时。 13.读程序:
START: IN AL,20H MOV BL,AL IN AL,30H MOV CL,AL MOV AX,0 ADLOP: ADD AL,BL ADC AH,0 DEC CL JNZ ADLOP HLT 请问: (1)本程序实现什么功能? (2)结果在哪里?
解答:完成20H*30H,结果在AX中。
14.请编一程序段完成AX*l0的任务(要求不准用乘法指令做)。 解答: MOV BX,AX MOV CL 2 SHL AX, CL ADD AX,BX SHL AX ,1 15.编程序使:
(1)AX寄存器低4位清零。 (2)BX寄存器低4位置“1”。 (3)CX寄存器低4位变反。
(4)用TEST指令测试DL寄存器位3、位6是否同时为0,若是,将0送DL;否则l送DH。
解答 :1,AND AX ,0FFF0H 2,OR BX ,000FH
不得用于商业用途
仅供个人参考
3,XOR CX ,000FH 4,TEST DL ,48H JZ LOOP MOV DH,1 HLT
LOOP :MOV DL ,0 HLT
10. 设一子程序求两个多字节数FIRST与SECOND之和,结果放在THIRD中,设这两个多字节数均为4个字节长 答: ADDSUB PROC
PUSHF PUSH AX PUSH BX PUSH CX PUSH SI PUSH DI LEA SI, FIRST LEA DI, SECOND LEA BX, THIRD MOV CX, 2 CLC
AA2: MOV AX, [SI]
不得用于商业用途
仅供个人参考
ADC AX, [DI] MOV [BX], AX PUSHF ADD SI, 2 ADD DI, 2 ADD BX, 2 POPF LOOP AA2 POP DI POP SI POP CX POP BX POP AX POPF RET
ADDSUB ENDP
不得用于商业用途
仅供个人参考
八、接口芯片的综合编程题
(一)8255A
1. 若要求从8255A的A端口输出数据82H,请编写8255A的初始化程序和数据输出程序。现已知A口地址为80H,B口地址为81H,C口地址为82H,控制字寄存器地址为83H,8255A的方式控制字各位的含义如下表:
D7 1 D6 D5 D4 0:端口A输出 1:端口A输入 D3 0:C4~C7输出 1:C4~C7输入 D2 D1 D0 0:C0~C3输出 1:C0~C3输入 00:端口A工作于方式0 01:端口A工作于方式1 10、11:端口A工作于方式2 0:端口0:端口B工作B输出 于方式0 1:端口1:端口B输入 B工作于方式1 答:参考程序如下:
MOV AL, 1000 0000B ;置工作方式字,只要求了A是输出,其它任意,故都选用基本 ; 工作方式 OUT 83H, AL ;输出工作方式控制字到控制端口地址 MOV AL, 82H ;将要输出的数值先给AL; OUT 80H, AL ;将数值送到A端口,其地址号为80H
2:若A口方式2 要求发两个中断允许,即PC4和PC6均需置位。B口方式1要求使PC2置位来开放中断。,8255的端口地址为60--63H,请写出其初始化程序。 答:参考程序如下:
MOV AL,0C4H
不得用于商业用途
仅供个人参考
OUT 63H,AL ;设置工作方式
MOV AL,09H ; PC4的置位控制字为00001001,即09H OUT 63H,AL ;PC4置位,A口输入允许中断
MOV AL,0DH ;PC6的置位控制字为00001101,即0DH OUT 63H,AL ;PC6置位,A口输出允许中断
MOV AL, 05H; ;PC2的置位控制字为00000101,即05H OUT 63H,AL ;PC2置位;B
3 某系统要求使用8255A的A口方式0输入,B口方式0输出,C口高4位方式0输出,C口低4位方式0输入,8255的端口地址为60--63H。请写出其初始化程序。
则控制字为: 即91H
初始化程序为: MOV AL, 91H
OUT 63H,AL
4:若8255端口A工作于方式0输出,端口B工作于方式1输入,用PC2置位来自动开启STB选通信号,;请写其初始化程序!
答:初始化8255A:
不得用于商业用途
仅供个人参考
MOV DX,8255_CTRL ; 8255A控制端口地址送DX MOV AL,86H ;把所设的控制字送给AL
OUT DX,AL ;再将控制字从AL送到8255的控制端口; MOV AL,05H ;把PC2置位的控制字00000101,即05H送给AL MOV DX,AL ;置PC2=1,允许中断
5:设8255A的控制口地址为00EEH,要求对端口C的PC7置1,则控制字00001111B=0FH,要求对端口C的PC3置0,控制字为00000110B=06H。 下面的程序可以实现上述要求:
MOV AL , 0FH ;对PC7置1的控制字 MOV DX , 00EEH ;控制口地址送DX OUT DX , AL ;对PC7置1操作 MOV AL , 06H ;对PC3置0的控制字 OUT DX , AL ;对PC3进行置0的操作
6.编一初始化程序,使8255A的PC5端输出一个负跳变。如果要求PC5端输出一个负脉冲则初始化程序又是什么情况?
解答:
初始化程序:
MOV AL,0BH;PC5置“1”控制字→AL
MOV DX,××××××11B;控制口地址→DX
不得用于商业用途
仅供个人参考
OUT DX,AL;置“1”控制字→控制寄存器 MOV AL,0AH;PC5置“0”控制字→AL OUT DX,AL;置“0”控制字→控制寄存器 如果要求PC5输入一个负脉冲则再加两条指令 MOV AL,0BH OUT DX,AL
7. 设8255A与8086CPU相连,8255A芯片A口工作在方式1输出,B口工作在方式0输入,禁止A口中断,8255A芯片A口、B口、C口、控制口地址分别为FFF8H、FFFAH、FFFCH、FFFEH,请写出初始化程序。
答:本题没有告诉C口高4位与低4位的出入补充为C口高4位与低4位均为输出,则其控制字为 1 01 0 0 0 1 0 B=0A2H 初始化程序为: MOV AL, 0A2H MOV DX, 0FFFEH OUT DX, AL
8.设8255端口地址为50H~56H中的偶地址,并设端口A工作在方式0输入,端口B
工作在方式1输出,允许B口中断,端口C输出,对8255初始化编程。 其控制字为: 1 00 1 0 1 0 0 B= 0A4H
初始化程序为:MOV AL, 0A4H OUT 56H, AL
补充题: 假设8255A工作于方式0,且端口A和端口C的高4位输出,端口B和端口C低4位输入,设置该8255A的方式选择控制字,并进行初始化编程。并写出从8255A的A端口输出数据7FH的数据输出程序语句。已知A口地址为60H,B口地址为61H,C口地址为62H,控制字寄存器地址为63H,8255A的方式控制字各位的含义如下表:(本题10分)
不得用于商业用途
仅供个人参考
(二)8259A
1.某系统中设置三片8259A级联使用,一片为主8259A;两片为从8259A;它们分别接入主8259A的IR2和IR6端。若已知当前主8259A和从8259A的IR3上各接有一个外部中断源,它们的中断类型码分别为A0H,B0H和C0H,已知它们的中断入口均在同一段中,其段基址为2050H,偏移地址分别为11A0H,22B0H和33C0H,所有中断都采用电平触发方式、完全嵌套、普通EOI结束,请(1)画出它们的硬件连接图;(2)编写全部初始化程序。 解答:
初始化程序:
START:MOV AL ,19H
MOV DX, 偶地址(主) OUT DX,AL MOV AL,0A0H
MOV DX,奇地址(主) OUT DX,AL MOV AL,44H OUT DX,AL MOV AL,11H OUT DX,AL MOV AL,11H OUT DX,AL MOV AL,0B3H OUT DX,AL MOV AL,22H
MOV DX,偶地址(主) OUT DX,AL MOV AL,19H
MOV DX,偶地址(从1) OUT DX,AL MOV AL,0B0H
MOV DX,奇地址(从1) OUT DX,AL MOV AL,02H OUT DX,AL MOV AL,11H OUT DX,AL MOV AL,0F7H OUT DX,AL
MOV DX,偶地址(从1) MOV AL,22H OUT DX,AL 不得用于商业用途
仅供个人参考
从2:MOV AL,19H
MOV DX,偶地址(从2) OUT DX,AL MOV AL,0C0H
MOV DX,奇地址(从2) OUT DX,AL MOV AL,06H OUT DX,AL MOV AL,11H OUT DX,AL MOV AL,0F7H OUT DX,AL
MOV DX,偶地址(主) MOV AL,22H OUT DX,AL STI HH: HLT
JMP 11H
2.编一系统初始化程序,由8259A的IR0~IR4共五个中断源,中断类型码为4BH,4CH,4DH,4EH,4FH。8259A端口地址为80H、81H。允许它们以完全嵌套方式工作。 解答:
STT: MOV AL,11H MOV DX,80H OUT DX,AL MOV AL,4BH MOV DX,81H OUT DX,AL MOV AL,01H OUT DX,AL MOV AL,0D0H OUT DX,AL MOV AL,20H MOV DX,80H OUT DX,AL HLT ? ?
(三). 其它端口编程题
1. 设状态端口地址为76H,数据端口地址为75H,外部设备是否准备好信息由D7位传送,D7=1为准备好,D7=0为未准备好(忙),请用查询方式写出:CPU向外部传送数据不得用于商业用途
仅供个人参考 的程序段。(8分)
答: LOP1: IN AL, 76H TEST AL, 10H JZ LOP1 ;测试语句准确(4分) MOV AL, DATA OUT 75H, AL ;输出语句准确(4分) HLT
不得用于商业用途
仅供个人参考
仅供个人用于学习、研究;不得用于商业用途。
For personal use only in study and research; not for commercial use.
Nur für den persönlichen für Studien, Forschung, zu kommerziellen Zwecken verwendet werden. Pour l 'étude et la recherche uniquement à des fins personnelles; pas à des fins commerciales. т
о
л
ь
к
о
для людей, которые используются для
обучения, исследований и не должны использоваться в коммерческих целях.
以下无正文
不得用于商业用途
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务