东南大学 - 微机原理习题练习

更新时间:2023-12-25 08:20:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一 概念与基本知识

讲课内容:计算机系统的组成和各部分的作用;数字计算机中的信息表示; *微机系统的结构特点;*8086/88CPU内部结构;*8086/88CPU外部信号;8086/88系统组成和总线时序。 习题:

1. 计算机系统的根本功能是什么?完成相应功能的实质是什么? 2. 试述微型计算机系统与一般计算机系统的联系和差别。

3. 微型计算机系统有哪些特点?具有这些特点的根本原因是什么?

4. 微型计算机系统有哪些功能部件组成?它们各自具有什么结构?采用什么样的结构? 5. 试说明程序存储及程序控制的概念。 6. 请说明微型计算机系统的工作过程。 7.试说明微处理器字长的意义。

8. 什么是微处理器?什么是微型计算机?什么是微机系统?它们之间的关系如何? 9. 在 8088/8086中,逻辑地址FFFF∶0001, 00A2∶37F和B800∶173F的物理地址分别是多少?

10. 在 8088/8086中,从物理地址388H开始顺序存放下列三个双字节的数据,651AH, D761H和007BH,请问物理地址388H, 389H, 38AH, 38BH, 38CH和38DH 6个中分别是什么数据? 11. PC/XT机中的各种系统支持芯片的功能在815EP为处理器支持核心的PC机中分别由什么部件完成?

12. 在基于微处理器的通用微型计算机中 ,其内部含有哪些部件?

13. 微处理器是微型计算机的核心 ,虽有不同的型号,但它们都具有相同的6个功能,这6个功能是什么?

14. 微处理器的内部结构中由哪些功能部件组成 ?

15. 累加器是一个很重要的寄存器 ,试分析累加器在指令执行过程中的作用是什么?

16. 微型计算机是面向总线结构的 ,系统总线中的地址总线、数据总线和控制总线各有什么用途?

17. 以微型机为主体组成的微型计算机系统中,除了微型机以外,还需要配置哪些软件和外部设备?

18. 8086/8088 CPU的内部结构有什么特点?

19. 从程序员和使用者的角度来划分 ,8086/8088内部均有两个独立:BIU和EU,请分析它们各有哪些功能?

20. 8086/8088内部有哪些通用寄存器?

21. 8086/8088 内部有几个段寄存器,阐述各段寄存器的用途?

22. 8086/8088 内部标志寄存器中,哪几位属于状态标志,哪几位属于控制标志?其含义分别的什么?

23. 8086/8088 CPU 有40条引脚,请按功能对它们进行分类?

24. 8086/8088 有两种工作方式,它们是通过什么方法来实现?在最大方式下其控制信号怎样产生?

25. MPU与存储器之间的控制信号有哪些,各起什么作用? 26. MPU与I/O之间的控制信号有哪些,各起什么作用? 27. 存储器的逻辑地址由哪几部分组成?

28. 存储器的物理地址是怎样形成的?一个具有 20位地址线的CPU,其最大物理地址为多少?

29. 分析 8086/8088 CPU 最大方式下的读操作时序。

30. 8086/8088 I/O 的读/写周期时序与M 读/写周期的主要差异是什么?

31. 8086/8088 CPU 在响应外界中断请求后,需要进入中断响应周期,分析该周期有什么特点?

32. 在 8088最大方式系统中,20位地址用74LS373锁存器锁存,8位数据线用74LS245总线收发器缓冲,

再配上总线控制器8288,画出系统配置图。

※第二 8086/88系统指令与汇编程序设计 讲课内容:8086 指令系统(4个学时)。主要讲解8086的基本数据类型、寻址方式和指令系统,重点掌握8086指令系统的寻址方式、堆栈操作指令、算术运算指令及其对标 志位的影响,串操作指令,控制传送指令。汇编语言程序设计(6个学时)主要讲解汇编语言程序的设计技巧和编程原理,重点掌握算术运算程序、字符串处理程 序、码制转换程序、子程序设计程序、常用DOS和BIOS功能调用程序、汇编语言常用伪指令以及汇编语言和高级语言间的接口。

实验内容:熟悉汇编语言程序设计全过程;用汇编语言进行程序设计;熟悉 BIOS与DOS功能调用方法。 习题:

1.假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变量VAL的偏移地址为0050H,请指出下列指令源操作数是什么寻址方式?其物理地址是多少?

( 1)MOV AX,0ABH (2)MOV AX,[100H] ( 3)MOV AX,VAL (4)MOV BX,[SI]

( 5)MOV AL,VAL[BX] (6)MOV CL,[BX][SI] ( 7)MOV VAL[SI],BX (8)MOV [BP][SI],100

2.已知SS=0FFA0H,SP=00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变化的过程示意图。(标出存储的地址) 3.设有关寄存器及存储的内容如下:

DS=2000H,BX=0100H,AX=1200H,SI=0002H, [20100H]=12H,[20101H]=34H,[20102H]=56H,[20103]=78H,[21200]=2AH, [21201H]=4CH,[21202H]=0B7H,[21203H]=65H。

试说明下列各条指令单独执行后相关寄存器或存储的内容。 (1)MOV AX,1800H (2)MOV AX,BX

(3)MOV BX,[1200H] (4)MOV DX,1100[BX] (5)MOV [BX][SI],AL (6)MOV AX,1100[BX][SI] 4.写出实现下列计算的指令序列。(假定X、Y、Z、W、R都为字变量) (1)Z=W+(Z+X) (2)Z=W-(X+6)-(R+9) 5.若在数据段中从字节变量TABLE相应的开始存放了0~15的平方值,试写出包含有XLAT指令的指令序列查找N(0~15)中的某个数的平方。(设N的值存放在CL中) 6.写出实现下列计算的指令序列。(假定X、Y、Z、W、R都为字变量) (1)Z=(W*X)/(R+6) (2)Z=((W-X)/5*Y)*2 7.假定DX=1100100110111001B,CL=3,CF=1,试确定下列各条指令单独执行后DX的值。 (1)SHR DX,1 (2)SHL DL,1 (3)SAL DH,1 (4)SAR DX,CL (5)ROR DX,CL (6)ROL DL,CL (7)RCR DL,1 (8)RCL DX,CL 8.试分析下列程序完成什么功能? MOV CL,4 SHL DX,CL MOV BL,AH SHL BL,CL SHR BL,CL OR DL,BL

9.已知程序段如下: MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX INT 20H 试问:( 1)每条指令执行后,AX寄存器的内容是什么?(2)每条指令执行后,CF,SF及ZF的值分别是什么?(3)程序运行结束时,AX及DX寄存器的值为多少? 10.试分析下列程序段: ADD AX,BX JNC L2

SUB AX,BX JNC L3

JMP SHORTL5

如果 AX、BX的内容给定如下: AX BX

(1)14C6H 80DCH (2)B568H 54B7H

问该程序在上述情况下执行后,程序转向何处?

11.编写一段程序,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于

NEWS字符串,则执行NEW_LESS,否则顺序执行。

12.下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。 VAR1 DB 10,2

VAR2 DW 5DUP(?),0

VAR3 DB ?HOW ARE YOU?',?$' VAR4 DD -1,1,0

13.假定VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处。 (1)ADD VAR1,VAR2 (2)SUB AL,VAR1 (3)JMP LAB[SI] (4)JNZ VAR1

14.对于下面的符号定义,指出下列指令的错误。 A1 DB ? A2 DB 10 K1 EQU 1024

(1) MOV K1,AX (2)MOV A1,AX ( 3)CMP A1,A2 (4)K1 EQU 2048 15.数据定义语句如下所示:

FIRST DB 90H,5FH,6EH,69H SECOND DB 5 DUP(?) THIRD DB 5 DUP(?) FORTH DB 5 DUP(?)

自 FIRST开始存放的是一个四字节的十六进制数(低位字节在前),要求:

( 1)编一段程序将这个数左移两位、右移两位后存放到自SECOND开始的(注意保留移出部分。

( 2)编一段程序将这个数求补以后存放到自FORTH开始的。

16.试编程序将内存从40000H到4BFFFH的每个中均写入55H,并再逐个读出比较,看写入的与读出的是否一致。若全对,则将AL置7EH;只要有错,则将AL置81H。

17.在当前数据段4000H开始的128个中存放一组数据,试编程序将它们顺序搬移到A000H开始的顺序128个中,并将两个数据块逐个进行此较;若有错将BL置00H;全对则将BL置FFH,试编程序。

18.设变量A、B、C存放有三个数,若三个数都不为零,则求三个数的和,存放在D中;若有一个为零,则将其余两个也清零,试编写程序。

19.有一个100个字节的数据表,表内元素已按从大到小的顺序排列好,现给定一元素,试编程序在表内查找,若表内已有此元素,则结束;否则,按顺序将此元素插入表中适当的位置,并修改表长。

20.内存中以FIRST和SECOND开始的中分别存放着两个16位组合的十进制(BCD码)数,低位在前。编程序求这两个数的组合的十进制和,并存到以THIRD开始的。

21.编写一段程序,接收从键盘输入的10个数,输入回车符表示结束,然后将这些数加密后存于BUFF缓冲区中。加密表为:

输入数字: 0,1,2,3,4,5,6,7,8,9;密码数字:7,5,9,1,3,6,8,0,2,4 22.试编程序,统计由40000H开始的16K个中所存放的字符“A“的个数,并将结果存放在DX中。

23.在当前数据段(DS),偏移地址为DATAB开始的顺序80个中,存放着某班80个同学某门考试成绩。按要求编写程序:

①编写程序统计≥90分;80分~89分;70分~79分;60分~69分,<60分的人数各为多少,

并将结果放在同一数据段、偏移地址为BTRX开始的顺序中。

②试编程序,求该班这门课的平均成绩为多少,并放在该数据段的AVER中。

24.编写一个子程序,对AL中的数据进行偶校验,并将经过校验的结果放回AL中。 25.利用上题的予程序,对80000H开始的256个的数据加上偶校验,试编程序。 25 分析执行下列指令后的结果: MOV AL,0B2H A. CBW B. CWD

26 分析执行下列指令序列后的结果: A. MOV AX,1234H MOV BX 00FFH AND AX,BX

B. MOV AL 01010101B AND AL 00011111B OR AL 11000000B XOR AL, 00001111B NOT AL

C. MOV DL,05H MOV AX, 0A00H MOV DS, AX MOV SI, 0H MOV CX,0FH AGAIN: INC SI CMP [SI],DL LOOPNE AGAIN HLT

D. MOV AX,DSEGADDR MOV DS, AX MOV ES,AX

MOV SI, OFFSET B1ADDR MOV DI,OFFSET B2ADDR MOV CX,N CLD

NXTPT:MOVSB LOOP NXTPT HLT

E. MOV AX, 0H MOV DS,AX MOV ES, AX MOV AL,05H MOV DI,0A000H MOV CX,0FH CLD

AGAIN:SCASB

本文来源:https://www.bwwdw.com/article/styx.html

Top