删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

暨南大学微机原理与接口技术习题包含答案

暨南大学 /2011-11-24

第1章 微型计算机系统概述
--------------------------------------------------------------------------------

1. 简述微型计算机系统的组成。

2. 简述计算机软件的分类及操作系统的作用。

3. CPU是什么?写出Intel微处理器的家族成员。

4. 写出10条以上常用的DOS操作命令。


[参考答案]
1.答:微型计算机系统由硬件和软件两大部分组成,硬件又可细分为主机(由CPU、存储器、控制电路、接口等构成)、输入设备(如键盘)和输出设备(如显示器);软件可细分为系统软件(如操作系统)和应用软件。
3.答CPU(Central Processing Unit中央处理单元)是计算机的核心部件,它包括控制器和算术逻辑运算部件等。Intel 微处理器的家族成员有:8088/8086、80186、80286、80386、80486、Pentium(80586)、Pentium Ⅱ、Pentium Ⅲ 和Pentium IV。

[返回试题目录]
 
第2章 计算机中的数制和码制
--------------------------------------------------------------------------------

1. 将下列十进制数转换成二进制数:
(1) 49;(2)73.8125;(3) 79.75

2. 将二进制数变换成十六进制数:
(1)101101B;(2)1101001011B;(3)1111111111111101B;
(4)100000010101B;(5)1111111B;(6)10000000001B

3. 将十六进制数变换成二进制数和十进制数:
(1)FAH;(2)5BH;(3)78A1H;(4)FFFFH; (5) 34.2AH;(6)B8.93H

4. 将下列十进制数转换成十六进制数:
(1)39;(2)299.34375;(3)54.5625

5. 将下列二进制数转换成十进制数:
(1)10110.101B;(2)10010010.001B;(3)11010.1101B

6. 计算(按原进制运算):
(1)10001101B+11010B;(2)10111B+11100101B;(3)1011110B-1110B;
(4)124AH+78FH;(5)5673H+123H;(6)1000H-F5CH;

7. 已知a=1011B,b=11001B,c=100110B, 按二进制完成下列运算,并用十进制运算检查计算结果:
(1)a+b;(2)c-a-b;(3)a·b;(4)c/b

8. 已知a=00111000B, b=11000111B, 计算下列逻辑运算:
(1)a AND b;(2)a OR b;(3)a XOR b;(4)NOT a

9. 设机器字长为8位,写出下列各数的原码和补码:
(1)+1010101B;(2)-1010101B;(3)+1111111B;
(4)-1111111B;(5)+1000000B;(6)-1000000B

10. 写出下列十进制数的二进制补码表示(设机器字长为8位):
(1)15;(2)-1;(3)117;(4)0;
(4)-15;(5)127;(6)-128;(7)80

11. 设机器字长为8位,先将下列各数表示成二进制补码,然后按补码进行运算,并用十进制数运算进行检验:
(1)87-73;(2)87+(-73);(3)87-(-73);
(4)(-87)+73;(5)(-87)-73;(6)(-87)-(-73);

12. 已知a,b,c,d为二进制补码:a=00110010B, b=01001010B, c=11101001B, d=10111010B, 计算:
(1)a+b;(2)a+c;(3)c+b;(4)c+d;
(5)a-b;(6)c-a;(7)d-c;(8)a+d-c

13. 设下列四组为8位二进制补码表示的十六进制数,计算a+b和a-b,并判断其结果是否溢出:
(1)a=37H, b=57H; (2)a=0B7H, b=0D7H;
(3)a=0F7H, b=0D7H; (4)a=37H, b=0C7H

14. 求下列组合BCD数的二进制和十六进制表示形式:
(1)3251(2)12907(3)ABCD(4)abcd

15. 将下列算式中的十进制数表示成组合BCD码进行运算,并用加6/减6修正其结果:
(1)38+42;(2)56+77;(3)99+88;(4)34+69;
(5)38-42;(6)77-56;(7)15-76;(8)89-23

16. 将下列字符串表示成相应的ASCII码(用十六进制数表示):
(1)Example 1;(2)Jinan University;(3)-108.652;
(4)How are you?;(5)Computer(6)Internet Web

17. 将下列字符串表示成相应的ASCII码(用十六进制数表示):
(1)Hello(2)123<CR>456;(注:<CR>表示回车)(3)ASCII;
(4)The number is 2315

[参考答案]


1. 解:(1)49=0011 0001B (2)73.8125=0100 1001.1101B
(3)79.75=0100 1111.11B

3. 解:(1)FAH=1111 1010B=250D (2)5BH=0101 1011B=91D
(3)78A1H=0111 1000 1010 0001B=30881D
(4)FFFFH=1111 1111 1111 1111B=65535D

5. 解:(1)10110.101B=22.625 (2)10010010.001B=146.0625
(3)11010.1101B=26.8125

7. 解:a=1011B=11, b=11001B=25, c=100110B=38
(1)a+b=100100B=36 (2)c-a-b=10B=2
(3)a·b=100010011B=275 (4)c/b=1……1101B(=13)

9. 解:(1)+1010101B 原码01010101B 补码01010101B
(2)-1010101B 原码11010101B 补码10101011B
(3)+1111111B 原码01111111B 补码01111111B
(4)-1111111B 原码11111111B 补码10000001B
(5)+1000000B 原码 01000000B 补码01000000B
(6)-1000000B 原码 11000000B 补码11000000B

11. 解:按补码表示+87=0101 0111B;+73=0100 1001B;-87=1010 1001B;
-73=1011 0111B
(1)87-73=0101 0111B-0100 1001B=1110B=14
(2)87+(-73)=0101 0111B+1011 0111B=[1]0000 1110B=14(舍去进位)
(3)87-(-73)=0101 0111B-1011 0111B=[-1]1010 0000B=-96(溢出)
(4)(-87)+73=1010 1001B+0100 1001B=1111 0010B=-14
(5)(-87)-73=1010 1001B-0100 1001B=[-1]0110 0000B=96(溢出)
(6)(-87)-(-73)=1010 1001B-1011 0111B=1111 0010B=-14

13. 解:(1)a=37H, b=57H; a+b=8EH; a-b=[-1]E0H=-32
(2)a=0B7H, b=0D7H; a+b=[1]8EH=-114; a-b=[-1]E0H=-32
(3)a=0F7H, b=0D7H; a+b=[1]CEH=-50; a-b=20H=32
(4)a=37H, b=0C7H; a+b=FEH=-2; a-b=[-1]70H=112

15. 解:(1)将38、42表示成组合BCD码:38H、42H,然后按二进制进行运算,并根据运算过程中的AF,CF进行加6/减6修正。38H+42H=7AH,低4位需要加6修正:7AH+6=80H,所以有38+42=80;
(2)56H+77H=CDH,高4位、低4位都应加6修正:CDH+66H=[1]33H,因此有56+77=133;
(3)99H+88H=[1]21H(AF=1), 高4位、低4位都应加6修正:[1]21H+66H=[1]87H, 因此99+88=187
(4)34H+69H=9DH, 低4位需要加6修正:9DH+6=A3H, 修正结果使高4位超出9, 这时再对高4位进行加6修正: A3H+60H=[1]03H, 因此34+69=103
(5)38H-42H=[-1]F6H, 因CF=1(有借位), 高4位应减6修正: [-1]F6H-60H=[-1]96H, 指令的借位应表示成100的补码, 因此38-42=96-100=-4
(6)77H-56H=21H, 不需要修正, 因此77-56=21
(7)15H-76H=[-1]9FH, 高4位、低4位都应减6修正: [-1]9FH-66H=[-1]39H, 因此15-76=39-100=-61
(8)89H-23H=66H, 不需要修正, 因此89-23=66

17. 解:字符串的ASCII码(用十六进制数表示)为:
(1)48,65,6C,6C,6F
(2)31,32,33,0D,34,35,36
(3)41,53,43,49,49
(4)54,68,65,20,6E,75,6D,62,65,72,20,69,73,20,32,33,31,35

[返回试题目录]
第3章  微机系统中的微处理器


--------------------------------------------------------------------------------

3.1        例题

例3-1  有一块120个字的存储区域,其起始地址为625A:234D,写出这个存储区域首末单元的物理地址。

解:存储区域的字节数为:2×120=240=0F0H,

    首地址为:625AH×10H+234DH=648EDH,

    末地址为:648EDH+0F0H=649DDH,

     或者:625AH×10H+(234DH+0F0H)=625A0H+243DH=649DDH。

例3-2  两个十六进制数7825H和5A1FH分别相加和相减后,求运算结果及各标志位的值。

解:7825H+5A1FH=0D244H,AF=1,CF=0,ZF=0,SF=1,OF=1(当将7825H和5A1FH看作有符号数时,两个正数相加得到一个负数,结果显然是错误的,实际上,在运算过程中,次高位产生了进位而最高位没有产生进位,故运算产生溢出),PF=1(因为在44H中包含有偶数个1)。

7825H-5A1FH=1E06H,AF=1,CF=0,ZF=0,SF=0,OF=0,PF=1。

5A1FH-7825H=0E1FAH,AF=0,CF=1,ZF=0,SF=1,OF=0,PF=1。


--------------------------------------------------------------------------------

3.2              习  题

1.       微处理器内部结构由哪几部分组成?阐述各部分的主要功能。

2.       微处理器级总线有哪几类?各类总线有什么作用?

3.       为什么地址总线是单向的,而数据总线是双向的?

4.       8086/8088微处理器内部有哪些寄存器?其主要作用是什么?

5.       如果某微处理器有20条地址总线和16条数据总线:

  (1)假定存储器地址空间与I/O地址空间是分开的,则存储器地址空间有多大?

    (2)数据总线上传送的有符号整数的范围有多大?

6.       将十六进制数62A0H与下列各数相加,求出其结果及标志位CF、AF、SF、ZF、OF和PF的值:

(1)1234H;(2)4321H;(3)CFA0H;(4)9D60H

7.       从下列各数中减去4AE0H,求出其结果及标志位CF、AF、SF、ZF、OF和PF的值:

  (1)1234H;(2)5D90H;(3)9090H;(4)EA04H

8.       什么是逻辑地址?什么是物理地址?它们之间的关系如何?

9.       写出下列存储器地址的段地址、偏移地址和物理地址:

(1)2134:10A0;(2)1FA0:0A1F;(3)267A:B876

10.    给定一个数据的有效地址为2359H,并且(DS)=490BH,求该数据的物理地址。

11.    如果在一个程序段开始执行之前,(CS)=0A7F0H,(IP)=2B40H,求该程序段的第一个字的物理地址。

12.    下列操作可使用哪些寄存器?

(1)加法和减法;(2)循环计数;(3)乘法和除法;(4)保存段地址;

(5)表示运算结果的特征;(6)指令地址;(7)从堆栈中取数的地址;

13.    IBM PC有哪些寄存器可用来指示存储器的地址?

14.    设(BX)=637DH,(SI)=2A9BH,位移量=0C237H,(DS)=3100H,求下列寻址方式产生的有效地址和物理地址:

(1)直接寻址;(2)用BX的寄存器间接寻址;(3)用BX的寄存器相对寻址;

    (4)用BX和SI的基址变址寻址;(5)用BX和SI的基址变址且相对寻址

15.    若(CS)=5200H时,物理转移地址为5A238H,那么(CS)变成7800H时,物理转移地址为多少?

16.    设(CS)=0200H,(IP)=2BC0H,位移量=5119H,(BX)=1200H,(DS)=212AH,(224A0H)=0600H,(275B9H)=098AH。求使用下列寻址方式时的转移地址:

(1)段内直接寻址方式;

(2)使用BX的寄存器寻址的段内间接寻址方式;

(3)使用BX的寄存器相对寻址的段内间接寻址方式;

17.    将下列两组的词汇和说明关联起来:

(1)CPU;              A.保存当前栈顶地址的寄存器;
(2)EU;               B.指示下一条要执行指令的地址;
(3)BIU;              C.总线接口部件, 实现执行部件所需要的所有总线操作;
(4)IP;               D.分析并控制指令执行的部件; 
(5)SP;               E.存储程序、数据等信息的记忆装置,PC机有RAM和ROM两种;
(6)存储器;           F.以后进先出方式工作的存储器空间;
(7)堆栈;             G.把汇编语言程序翻译成机器语言程序的系统程序;
(8)指令;             H.惟一代表存储器空间中的每个字节单元的地址;

(9)状态标志;         I.能被计算机直接识别的语言;
(10)控制标志;        J.用指令的助记符、符号地址、标号等符号书写程序的语言;
(11)段寄存器;        K.把若干个模块连接起来成为可执行文件的系统程序;
(12)物理地址;        L.保存各逻辑段的起始地址的寄存器;
(13)汇编语言;        M.控制操作的标志,PC机有三位:DF、IF、TF;

(14)机器语言;        N.记录指令操作结果的标志,PC机有六位:OF、SF、ZF、AF、PF、CF;
(15)汇编程序;        O.执行部件,由算术逻辑单元(ALU)和寄存器组等组成;
(16)连接程序;        P.由汇编程序在汇编过程中执行的指令;
(17)目标码;          Q.告诉CPU要执行的操作,在程序运行时执行;
(18)伪指令            R.机器语言代码。

[参考答案]

1. 答:微处理器内部结构主要由算术逻辑运算单元(ALU)、控制器、工作寄存器和I/O控制逻辑组成。算术逻辑运算单元是CPU的核心,它完成所有的运算操作;控制器是CPU的“指挥中心”,只有在它的控制下,CPU才能完成指令的读入、寄存、译码和执行;工作寄存器用于暂时存储寻址信息和计算中间结果;I/O控制逻辑用于处理I/O操作。

3.       答:由于在计算机中地址总是由CPU产生的,因此地址总线是单向的。而数据可从CPU写到存储器,也可从存储器读到CPU,因此数据总线是双向的。

5.       解:存储空间为 M字节, 数据总线上传送的有符号整数的范围为-32768~+32767。

7.       解:(1)1234H-4AE0H=C754H;CF=1,AF=0,SF=1,ZF=0,OF=0,PF=0

  (2)5D90H -4AE0H=12B0H;CF=0,AF=0,SF=0,ZF=0,OF=0,PF=0

  (3)9090H-4AE0H=45B0H;CF=0,AF=0,SF=0,ZF=0,OF=0,PF=0

  (4)EA04H-4AE0H=9F24H;CF=0,AF=0,SF=1,ZF=0,OF=0,PF=1

9.       解:(1)段地址:2134H;    偏移地址:10A0H;   物理地址:223E0H

       (2)段地址:1FA0H;    偏移地址:0A1F H;   物理地址:2041FH

       (3)段地址:267A H;    偏移地址:B876H;   物理地址:32016H

11.    解:物理地址为: 0A7F0H×10H+2B40H=A3330H。

13.    答:指示存储器地址的寄存器有:SI,DI,BX,BP

15.    解:偏移地址为5A238H-5200H×10H=8238H,因此当(CS)变成7800H时,物理转移地址为7800H×10H+8238H=80238H

17.    答:两组词汇和说明的关联关系为

(1)~O;  (2)~D;  (3)~C;  (4)~B;  (5)~A;  (6)~E; 

(7)~F;  (8)~Q;  (9)~N;  (10)~M; (11)~L; (12)~H;

(13)~J; (14)~I; (15)~G; (16)~K; (17)~R; (18)~P。

[返回试题目录]
第4章  汇编语言程序设计基本方法


--------------------------------------------------------------------------------

4.1       例题

   

例4-1  写出下列变量的内容:

        VAR1  DB  125,125/3, -1, -10H

        VAR2  DW  125, 125/3, -1, -10H

        VAR3  DB  ‘AB’, ‘CD’

        VAR4  DW  ‘AB’, ‘CD’

    解:按十六进制数依次写出各个变量的内容为:

    VAR1:7D,29,FF,F0

    VAR2:007D,0029,FFFF,FFF0

    VAR3:41,42,43,44

    VAR4:4142,4344

按内存存储顺序给出:

7D,29,FF,F0,7D,00,29,00,FF,FF,F0,FF,41,42,43,44,42,41,44,43

   

例4.2  设有下列伪指令:

    START   DB 1,2,3,4,’ABCD’

            DB 3 DUP(?,1)

    BUF     DB 10 DUP (?),15

    L EQU BUF-START

求L的值。

    解:由EQU伪指令知,L的值为BUF的偏移地址减去START的偏移地址,而变量START共占用8个字节,第2行定义的变量(无变量名)共占用6个字节,因此,L的值为8+6=14=0EH。

 

例4.3  在缓冲区DATABUF中保存有一组无符号数据(8位),其数据个数存放在DATABUF的第1、2个字节中,要求编写程序将数据按递增顺序排列。(与教材p.114例4.3.10类似, 但方法不同)

    解:这里采用双重循环实现数据的排序,这可使程序变得简单。

        N=100          ;设有100个数据

STACK   SEGMENT STACK ‘STACK’

        DW 100H DUP(?)

TOP     LABEL WORD

STACK   ENDS

DATA    SEGMENT

DATABUF DW N

        DB N DUP(?)

DATA    ENDS

CODE    SEGMENT

        ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK

START:

        MOV AX,DATA

        MOV DS,AX

        MOV ES,AX

        MOV AX,STACK

        MOV SS,AX

        LEA SP,TOP

; 取出随机数据

        MOV CX,DATABUF

        LEA SI,DATABUF+2

        MOV BL,23

        MOV AL,11

LP:

        MOV [SI],AL

        INC SI

        ADD AL,BL

        LOOP LP

; 数据排序

        MOV CX,DATABUF

             DEC CX

        LEA SI,DATABUF+2

        ADD SI,CX

LP1:

        PUSH CX

        PUSH SI

LP2:

        MOV AL,[SI]

        CMP AL,[SI-1]

        JAE NOXCHG

        XCHG AL,[SI-1]

        MOV [SI],AL

NOXCHG:

        DEC SI

        LOOP LP2

        POP SI

        POP CX

        LOOP LP1

;数据排序结束

        MOV AH,4CH      ;返回DOS

        MOV AL,0

        INT 21H

CODE    ENDS

        END START

 

例4-4  有一组数据(16位而进制数)存放在缓冲区BUF1中, 数据个数保存在BUF1的头两个字节中。要求编写程序实现在缓冲区中查找某一数据,如果缓冲区中没有该数据,则将它插入到缓冲区的最后;如果缓冲区中有多个被查找的数据,则只保留第一个,将其余的删除。

    解:在缓冲区BUF中搜索指定的数据,当没有找到时,插入该数据;当找到时,进入搜索多余的重复数据,每找到一个就删除它(将缓冲区的剩余数据向前移动一个字)。当然应注意更新缓冲区的长度单元。

STACK   SEGMENT STACK 'STACK'

        DW 100H DUP(?)

TOP     LABEL WORD

STACK   ENDS

; 设缓冲区原有10个字,指定的数据为(NEW)=56AAH

DATA    SEGMENT

BUF     DW 10

相关话题/微机原理与接口技术