最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

微机原理与接口技术课后习题答案

来源:动视网 责编:小OO 时间:2025-09-29 18:17:27
文档

微机原理与接口技术课后习题答案

微机原理与接口技术课后部分习题参第一章2.第3项任务,根据状态标志位的状态决定转移方向。3.程序存储是将要执行的程序的全部指令存储到存储器中,程序控制指程序开始执行后,通过指令流控制数据或计算机,完成设定的任务。4.分BIU总线接口部件和EI执行部件两大部件,其中总线接口部件BIU负责取指令和数据,执行部件EI负责执行指令及运算。在执行一条指令的同时可以取下一条指令,重叠运行,速度快。5.有6个状态标志,分别为进位标志CF、溢出标志OF、零标志ZF、奇偶标志PF、负标志SF、辅助进位标志
推荐度:
导读微机原理与接口技术课后部分习题参第一章2.第3项任务,根据状态标志位的状态决定转移方向。3.程序存储是将要执行的程序的全部指令存储到存储器中,程序控制指程序开始执行后,通过指令流控制数据或计算机,完成设定的任务。4.分BIU总线接口部件和EI执行部件两大部件,其中总线接口部件BIU负责取指令和数据,执行部件EI负责执行指令及运算。在执行一条指令的同时可以取下一条指令,重叠运行,速度快。5.有6个状态标志,分别为进位标志CF、溢出标志OF、零标志ZF、奇偶标志PF、负标志SF、辅助进位标志
微机原理与接口技术课后部分习题参

第一章

2. 第3项任务,根据状态标志位的状态决定转移方向。

3. 程序存储是将要执行的程序的全部指令存储到存储器中,程序控制指程序开始执行后,通过指令流控制数据或计算机,完成设定的任务。

4. 分BIU 总线接口部件和EI执行部件两大部件,其中总线接口部件BIU负责取指令和数据,执行部件EI负责执行指令及运算。在执行一条指令的同时可以取下一条指令,重叠运行,速度快。

5. 有6个状态标志,分别为进位标志CF、溢出标志OF、零标志ZF、奇偶标志PF、负标志SF、辅助进位标志AF。3个控制标志分别为中断允许标志IF、单步标志TF、方向标志DF。

标志位的内容可以通过标志位操作指令来操作,例如CLC指令清除进位位,即使CF=0,STC指令使CF=1,CLI指令使IF=0,禁止中断,STI指令使IF=1,允许中断。还可以通过LAHF指令取来标识寄存器的内容修改后用SAHF指令送回去。也可以用PUSHF/POPF指令来修改标志寄存器的内容。

6. 实模式下分段靠4个段寄存器实现。段寄存器中的值就是段地址,当偏移地址为0时的段地址+偏移地址就是该段的起始地址。  物理地址是由段地址左移4位后与偏移地址相加形成的20位地址。 

7. 说法不一定正确。对顺序执行指令的计算机是对的。对重叠或流水线的计算机就不对了。

例如对8086CPU,由于采用了取指令与执行指令的一次重叠,尽管执行一条指令的总时间并没有变化,但连续执行n条指令时,总的时间会大大缩短,可以简单的比喻成总时间为原时间的二分之一,快了一倍。

8. 引入流水线后,执行一条指令的总时间并没有变化。

9. 高速缓存的目的是提高存储器的速度,进而提高了CPU的速度。虚拟存储器的目的是为了给程序员或程序一个大的存储或运行空间。

10。8086采用总线接口部件BIU与执行部件EU分开提高了速度,286将8086的BIU进一步分成3个部件,提高了并行性。386在286基础上进一步增加成6个逻辑部件,实现多条指令重叠,进一步提高了速度,486采用硬组合逻辑控制器,同时采用内嵌高速缓存,提高速度。Pentium采用多流水技术,指令cache数据cache技术提高速度。都采用扩展地址线数量来扩大容量。

第二章

1. (1)1000:0--1000:FFFFH, 即10000H--1FFFFH.(2)12340--2233FH(3)略(4)略。

2. (1) 逻辑1000H:2000H,物理12000H.     (2)略(3)略(4)略。

3.  DS 可以与BX,SI,DI等组合,   ES可以与BX,SI,DI等组合,串指令约定与DI组合。  CS只与IP组合, SS一般只与SP组合,也可以与BP组合。

4. 便于程序运行空间保护,便于兼容早期的微处理器。

5. 尽管保护模式下的寻址系统有些复杂,但从用户的角度来说,没有什么不同。

6. 描述符包括基地址、界限、访问权限等信息。

7. 页表要映射到20位的物理地址中。

8. 段被访问时,置1,用于统计该段被访次数。这两个A位服务的对象不一样,不多余。

第三章   129页

1. 无符号分离式BCD码。0011表示3, 后面的4位可以是0-9,可以表示ASCII码0-9。

2. 由程序或程序员来定义。数据在计算机中都是用代码来表示的,一个数据(例如00110101)的意义是程序员自己掌握的,程序员把它当做一个字符,就是数字5的ASCII码。如果说他是一个无符号数,就是代表十进制数53,如果说是组合式BCD码,就代表十进制数35。

3. 段定义,包括数据段,堆栈段,代码段等。数据及变量定义,约定段寄存器与段名的映射,代码段开始,代码段编程,代码段结束,汇编程序结束等。

4. 操作符由控制器译码器解释执行,伪操作符由汇编程序(翻译程序)解释执行。

5. 转移指令后的标号是偏移地址。只有当应用该标号的转移指令位置确定后,在该指令地址正负128范围内的标号是短转移,类型是字节,在16位二进制数之内是段内的字类型,超出16位二进制数之外的是段间转移,是双字类型。

6. (1) DB 20,  20 DUP (0)

(2 )  DB “The course is easy ”, 0

(3)   DB “hello…. !!!!!”, 0dh,0ah,” $”

(4)  DW 100  DUP (0)

11. 数据定义语句表示,16进制书写。寻址方式包括立即数、直接、间接寻址等多种。逻辑地址。

12. 指令格式包括操作码、操作数(或地址)两部分, 这里的操作数不一定就是要处理的那个数据,也可以是那个数据的地址或寄存器等,是找到那个数的寻址方式。而参加操作的数据就是指具体的数据。

13. 判断操作数的寻址方式是否正确?说明原因。

•(1)[ AX]   ;例如MOV BL, [ AX] ;错,AX不是地址寄存器

•(2)BP     ;例如 MOV AX , BP; 正确, 寄存器寻址

•(3)[SI+DI]  ;例如 MOV AL , [SI+DI] 错,不能有2个变址寄存器

•(4)[SP]     ;例如 MOV AL , [SP], 错,不能用堆栈指针,堆栈指针只能由堆栈指令操作

•(5)CS      ;例如 MOV AX ,CS; 正确, 寄存器寻址

•(6)BH      ;例如 MOV AL ,BH; 正确, 寄存器寻址

•(7)[BX+BP+32]  ;例如 MOV  AL , [BX+BP+32];  错,不能有2个基地址寄存器

•(8)[BL+44]   ; 例如 MOV AL , [BL+44]; 错,BL不是完整的地址寄存器

•(9)[CX+90]   ;例如 MOV AL , [CX+90]; 错,CX不是地址寄存器

•(10)[DX]     ;例如 MOV AL , [DX]; 错,DX不是地址寄存器

•(11)BX+90H  ;例如 MOV AX , BX+90H; 错,不能加

•(12)[BX*4]   ; 例如 MOV AL , [BX*4] ;错,不能乘

•(13)SI[100H]   ;例如MOV AX ,SI[100H]; 正确,相对变址寻址,但写法不好,最好是MOV AX , [SI+100H],   MOV  AX ,  100[SI]

•(14)[DX+90H]  ;例如 MOV AX , [DX+90H]; 错,DX不是地址寄存器

14题

•假定  DS=2000H

•          ES=2100H

•          SS=1500H

•          SI=00A0H

•          BX=0100H  

•          BP=0010H

•数据变量wVald的偏移地址为0050H

•指出下列指令源操作数的寻址方式?

•(1)MOV  AX, 0ABH    ;立即数寻址

•(2)MOV  AX, [100H]   ;直接寻址 

•(3)MOV  AX, wVald  ;直接寻址,等于MOV  AX, [0050H]

•(4)MOV  BX, [SI]    ;寄存器间接寻址    

•(5)MOV  AX, wVald[BX]; 相对寄存器寻址,等于MOV  AX, [BX+0050H]

•(6)MOV  CL,[BX][SI]  ; 基址加变址寻址

•(7)MOV  wVald [SI],BX ;源是寄存器寻址, 目是相对基址加变址寻址,等于MOV [SI+0050H],BX

•(8)MOV  [BP][SI],100  ;源是立即数,相对基址加变址寻址

•              错,应该是MOV WORD[SI+BP],100  ;      说明是字或字节

15. 已知:SS=0FF10H, SP=00A0H.

•将8057H和0F79H入栈,再弹出一个数,画出堆栈区的变化。

•程序举例:

•MOV  AX,  FF10H

•MOV SS, AX

•MOV AX, 00A0H

•MOV SP,AX

•MOV AX, 8057H

•PUSH  AX

•MOV  AX,  0F79H

•PUSH  AX

•POP   BX

•答:已知SS+SP=FF100+00A0=FF1A0H

•    结果SP=009EH

•入堆栈时, 堆栈指针SP先减2,再压栈

•出堆栈时, 先弹出2个字节的,然后堆栈指针SP加2

栈的数据:

•FF198

•FF19A

•FF19C    0F79

•FF19E    0557   

•FF1A0                    ;栈底

•或用字节地址看

•FF199

•FF19A

•FF19B    0F

•FF19C    79

•FF19D    05

•FF19E    57

•FF19F

•FF1A0             ;栈底 

23.试编程序。将内存从40000H到4AFFFH的每个单元中均写入20H,再逐个单元读出比较,看写入的与读出的是否一致。若全对,则将AL置0FFH;只要有错,则将AL置00H。

•参考程序:(仅提供小汇编语句)

•MOV  AX,4000H  

•            MOV  DS, AX

•            MOV  BX,0

•            MOV  CX, AFFFH

•            MOV  AL, 20H

•L1:       MOV  [BX], AL 

•             CMP  [BX], AL

•             JNZ  ERROR

•             INC BX

•             DEC CX

•             JNZ  L1

•              MOV AL,FFH

•               JMP   END1

•ERROR:  MOV AL,0

•END1:      RET 

20.按下列要求编写指令序列

•1)清除DH中的最低三位而不改变其他位,结果存入DL中;

•    AND DH, F8H

•    MOV DL,DH

•2)把DI中的最高4位置1而不改变其他位;

•     OR DI, F000H

•3)把AX中的0-3位置1,7-9位取反,13-15位置0;

•    OR AX, 000FH

•    XOR AX, 00000011 10000000B ;用二进制表示数

•    AND AX, 00011111 11111111B

•4)测试BX中的第2、5和9位中是否有一位为1;

•TEST  BX, 00000010 00100100B

•JZ     全0

•否则, 结果非0表示至少有一个1

•5)测试CX中的第1、6和11位是否同时为1;

•MOV AX, CX

•AND AX, 00001000 01000010B

•CMP AX, 00001000 01000010B

•JE       等于转,表示 3位全为1。  

•6)测试AX中的第0、2、9和13位中是否有一位为0;

•AND AX,00100010 0000 0101; 只看这4位

•XOR AX, 0010 0010 0000 0101 

•JZ        ; 说明是全1,没有0

•至少1个0

•7)测试DX中的第1、4、11和14位是否同时为0;

•MOV AX, DX

•AND AX, 01001000 00010010B

•JZ  =0 

23.试编程序。将内存从40000H到4AFFFH的每个单元中均写入20H,再逐个单元读出比较,看写入的与读出的是否一致。若全对,则将AL置0FFH;只要有错,则将AL置00H。

•参考程序:(仅提供小汇编语句)

•MOV AX,4000H

•      MOV DS, AX

•      MOV BX,0

•      MOV CX, AFFFH

•      MOV AL,20H

•L1:  MOV  [BX], AL

•      CMP  [BX], AL

•      JNZ  ERROR

•      INC BX

•      DEC CX

•     JNZ  L1

•      MOV AL,FFH

•     JMP   END1

•ERROR:  MOV AL,0

•END1:    RET 

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

•答: 先用机器指令编程(用小汇编编程)

•    实现此功能的程序方法很多,这里只举一个简单直观的例子。

•设:变量A、B、C变量存放在1000H开始的单元中,即:

•变量A存放在当前段的1000H单元,

•变量B在        1001H单元,

•变量C在        1002H单元。

•结果D的地址为  1003H单元。

•MOV  BX,1000H

     MOV  AL, [BX] 

     CMP  AL,0      ;第一个数A=0?

•       JNZ  L1       ;非0 转 

•       MOV [BX+1], AL     ;其余2个清0

•       MOV [BX+2], AL

•      JMP  END1

•L1:  MOV  AL,[BX+1]   ;;第2个数B=0?

•       CMP  AL,0

•       JNZ   L2             ;非0 转  

•       MOV  [BX], AL

•       MOV  [BX+2], AL

•       JMP   END1

•L2 :  MOV  AL,[BX+2]   ;第3个数C=0?

•       CMP  AL,0

•       JNZ   L3           ;非0 转 

•       MOV  [BX],  AL

•       MOV  [BX+1],  AL

•       JMP  END1

•L3:   MOV  AL, [BX]       ;    3个数都不为零,求3个数的和

•        ADD  AL, [BX+1]

•        ADD  AL, [BX+2]

•        MOV  [BX+3], AL

•END1:    INT 3     ; 结束,断点,停在此

26.试编写程序,统计由40000H开始的16K个单元中所存放的字符A的个数,并将结果存放在DX中。(仅提供小汇编语句)

•       MOV  AX, 4000H

•       MOV  DS, AX

•       MOV  BX, 0

•       MOV  CX, 4000H   ;   16K个数

•       MOV  DX, 0       ;    用DX记录A的个数

•L1:  MOV   AL, [BX] 

•        CMP  AL, 41H   ; CMP  AL , ’A’

•       JNZ  L2

•        INC  DX      ; 累加器+1

•L2:   INC  BX

•        DEC  CX      ;          ( LOOP L1 )

•        JNZ  L1

30题。 键盘输入10个数,变成密码后存到BUFF缓冲区去

设密码缓冲区首地址=120H,  加密后的数字缓冲区BUFF首地址=130H(仅提供小汇编语句)

•           MOV   SI , 120H   ;密码缓冲区首地址=120H

•           MOV  DI,  130H     ;加密后的数字缓冲区首地址=130H

•           MOV  CX, 0AH     ;共10个数字

•           MOV  BX, 0          ;偏移地址清0

•10C     MOV  AH, 1  

•           INT    21H           ;等待输入一个数字 

•           CMP AL, 0DH      ;是回车?

•           JZ   END1         

•           AND  AL, 0FH     ;留下低4位

•           MOV   BL, AL        

•             MOV  AL, [ SI + BX  ]  ;  取1个数字的密码

•             MOV  [ DI ] , AL          ;   送加密缓冲区

•             INC   DI 

•             DEC  CX

•             JNZ  10C

• END1:      INT   3 ;    结束

•120   DB 7 5 9 1 3 6 8 0 2 4                         

第五章 169页

1.因为引脚不够,采用了复用技术,在外部必须用锁存器分开地址和数据线。主要是地址信息。

2.MEMR=1, MEMW=0,IOR=1,IOW=1.。反之,MEMR=0, MEMW=1,IOR=1,IOW=1。

3.地址数据线分时用,还有S0-S6,主要解决引脚不够的问题。

4.总线周期包括4个时钟周期,但存储器速度慢时,需要插入等待周期Tw。插入多少个由存储器的读写时间来决定。一般是1-2个。

5.复位后,只有CS=ffffh,其余都是0,系统从FFFF:0000=FFFF0H单元开始执行。

第六章 191页

1.尽管E2PROM速度已经很快,但还是跟不上CPU随机读写的速度,另外,E2PROM是快写,不能当RAM用。

2. E2PROM 是电信号擦除,擦写速度快,可以在线擦除与改写。EPROME是紫外线擦除,需要从电路板上取下来,紫外光照射10分钟,用专门的编程工具才能编程。E2PROM的优点是可以在线编程,编程速度快,但容易被病毒利用。计算机BIOS必须放在EPROME中,才能避免病毒破坏。

3.正比关系。

5.译码电路。

7.如果少用最高位2根地址线,重复空间有22=4块,。少用x根地址线,重复空间有2x块。。

9.(1)需128片。

10.

11.

12.

13.MOV AX,[2001H]不好,多用一个总线周期。慢。

14.

15. A1A0不参加译码。

16.2,4,8字节。

第八章 

23题    MOV AL,36H,         OUT D3H,AL

        MOV AX,00H,         OUT D0H,AL,       MOV AL,AH,          OUT D0H,AL

MOV AL,B0H,         OUT D3H,AL

   MOV AX,0032H,         OUT D2H,AL ,   MOV AL,AH,          OUT D2H,AL

24题   可以用中断方式或程序控制方式实现。

如果用程序控制方式,假设8255的A口接8个指示灯,B口PB7位做8254 定时时间到的 OUT输出线,设8255的口地址=60H, 设8254的口地址=40H, 

设用8254的计数器1,工作在方式3方波发生器,已知CLK1=1000HZ,即Tclk= 1/1000=1ms,希望输出T=1s,分频系数=该是1ms x1000=1s。  

主程序:  MOV AL,82H   ;  8255编程, A方式0 出,B方式0 入,C出;

           OUT 63H ,AL ;

           MOV AL,77H,         OUT D3H,AL    ;  8254计数器1方式3;BCD计数;

           MOV AX,1000H,       OUT D1H,AL    ;  

           MOV AL,AH,          OUT D1H,AL

     MOV BL,01H 

L1:        IN AL,61H

           AND AL,80H   ; 

           JZ L1        ;= 0等待

L2:           MOV AL,BL    ;=1,输出1个灯亮 

OUT 60H,AL   ; 一个灯亮

              ROL BL,1     ; 左循环移1位

L3:      IN AL,61H        ;

          AND AL,80H

          JNZ  L3          ;= 1等待

         JMP L1             ;   

                           

27题, 异步方式每个字节都需要加起始位、停止位等,传输效率就低了,单位时间传输的字符数就就低了。同步方式每个字节可以不要起始位、停止位及校验位, 直接连续传数据,效率高。单位时间内传输的字节数就多了。

28题, 先运行接收方程序。

29题, (仅供参考,基本意思到位就可以了,是否先复位等不要紧)

   MOV CX,3

 MOV AL,0

ST1:       OUT 52H,AL    ;先送3个0 ,复位

           DEC CX

           JNZ ST1

          MOV AL,40H

          OUT 52H,AL    ;复位8251

      MOV AL, 11 11 10 10B ;   2停止位,偶校验,7位数据, 波特率因子16

      OUT 52H,AL

      MOV AL, 00 01 01 11B ; 出错标志复位,允许接受,数据准备好,允许发送。  

      OUT 52H,AL

 30题、已知一秒钟传输1200bps/10 位格式= 120Byte, 传1024字节需要 1024/120B=8.53秒。

第九章

1题、显示“5”的7段码是1011011= 5BH 

2题,  这道题不用改了,原题不好。打个半对就行了。

3题。  (仅供参考方法不唯一,基本意思到位就可以了)

 L1:   IN AL,20H

       CMP AL,0  ;有按键?  没有就等待

       JZ L1

     IN AL,20H   ;取来按键的键号

     MOV CX,8    ;共8个键

MOV BL,1    ; 初值1

 L2:   SHR AL,1  ;右移一位,最低位到进位位。

       JC  L3    ;

       INC BL

       DEC CX

       JNZ  L2

L3:  MOV AL,BL

     OUT 20H,AL  ;显示

       结束

    

7题、 行频= 262x60=15700HZ

8题、 原题是32K色,即15位色,考虑15位不是整数,不好计算, 题改成24位色,3个8位表示一个点的颜色。 满屏共1024x768个点。 每个点用3字节二进制表示它的颜色。故:

1)显示缓存应该有1024x768x3=2359296个单元,

2)设(x,y)坐标为列、行坐标,即x是列坐标。y是行坐标。从第0行0列开始。  

 (x,y)坐标的点在显示存储器中对应的单元为 (1024y+ x) x 3。 

第十章

2题、已知端口地址为2F7H, 

    锯齿波:  MOV DX,2F7H,   

MOV AL,0

             L0:  OUT DX,AL

                  INC AL

                  JMP L0

3题、 ALE 和START信号是用户的OUT 指令经地址译码后产生的,宽度基本为转换周期128微秒。

5题、 500-200=300度,精度为0。1度, 应该有300x10=3000 个梯度,只有选用12位的A/D,D/A才能表达 3000 个梯度,  12位的A/D、D/A的分辨率是4096。

文档

微机原理与接口技术课后习题答案

微机原理与接口技术课后部分习题参第一章2.第3项任务,根据状态标志位的状态决定转移方向。3.程序存储是将要执行的程序的全部指令存储到存储器中,程序控制指程序开始执行后,通过指令流控制数据或计算机,完成设定的任务。4.分BIU总线接口部件和EI执行部件两大部件,其中总线接口部件BIU负责取指令和数据,执行部件EI负责执行指令及运算。在执行一条指令的同时可以取下一条指令,重叠运行,速度快。5.有6个状态标志,分别为进位标志CF、溢出标志OF、零标志ZF、奇偶标志PF、负标志SF、辅助进位标志
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top