微机原理知识点总结

时间:2024.4.14

第一章

1.       辨析三个概念:微处理器、微型计算机、微型计算机系统

微处理器:简称μP或MP(Microprocessor)是指由一片或几片大规模集成电路组成的具有运算器和控制器功能的中央处理器部件,又称为微处理机。

微型计算机: 简称μC或MC,是指以微处理器为核心, 配上存储器、 输入/输出接口电路系统总线所组成的计算机(又称主机或微电脑)。

微型计算机系统(主机+外设+软件配置)(Microcomputer system) 简称μCS或MCS,是指以微型计算机为中心, 以相应的外围设备电源辅助电路(统称硬件) 以及指挥微型计算机工作的系统软件所构成的系统。

2.微机系统结构(三种总线结构):数据总线,地址总线,控制总线

第三章

3.8086cup内部结构

由两部分组成:总线接口单元BIU(Bus Interface Unit); 执行单元EU(Execution Unit).

(1).总线接口单元BIU

      组成: 4个16位的段寄存器(CS、DS、ES、SS);

             1个16位的指令指针寄存器IP;

1个20位的地址加法器;

             1个指令队列(长度为6个字节);

             I/O控制电路(总线控制逻辑);

内部暂存器。

  BIU的功能:根据EU的请求负责CPU与内存或I/O端口传送指令或数据。

   ① BIU从内存取指令送到指令队列

   ② 当EU执行指令时,BIU要配合EU从指定的内存单元或I/O端口中读取数据,或者把EU的操作结果送到指定的内存单元或I/O端口去。

(2)执行单元EU(Execution Unit)

     组成:①ALU(算术逻辑单元);

           ②通用寄存器组 AX,BX,CX,DX(4个数据寄存器)

                            BP(基址指针寄存器)

                          SP(堆栈指针寄存器)

                          SI(源变址寄存器)

                          DI(目的变址寄存器)

        ③数据暂存寄存器

        ④标志寄存器FR

        ⑤ EU控制电路

作用:负责执行指令,执行的指令从BIU的指令队列中取得;运算结果和所需数据,则由EU向BIU发出请求,经总线访问内存或I/O端口进行存取。

4.物理地址与逻辑地址有什么区别?

答:逻辑地址是指未定位之前在程序中存在的地址,由段地址和偏移地址组成。物理地址是实际访问存储器时的地址(通过20位地址总线传递)。

5.在什么情况下8086的执行单元(EU)才需要等待总线接口单元(BIU)提取指令?

答:EU在执行完转移调用(包括子程序调用和中断调用)和返回指令时,因指令的执行顺序发生跳转,原来预取到指令队列中的指令将不再执行,需清空指令队列缓冲器。在此情况下,EU才需要等待BIU从新的地址重新开始提取指令。

6.存储器为什么要分段(段加偏移)?

答:1.8086有1M的存储空间,有20根地址线,而CPU的指令指针和堆栈指针都是16位的,只能直接寻址64KB的地址空间,为了能寻址1MB的空间,需要把存储器分为若干段。

2.存储器的分段的机制允许重定位,由于段寄存器里的段地址可以由程序来重新设定,因而使得程序和数据不需要进行任何修改,就能使他们重定位。

7.段地址和段基址概念辨析

1)段地址:段寄存器的内容,出现在汇编后的机器指令中。

2)段基址:段地址左移4位后形成的20位段起始地址。

8.8086CPU系统中为什么要用地址锁存器?

8086CPU由于引脚数量少,其地址总线采用了分时复用的双重总线,仅在总线周期的T l 时钟周期输出地址信号, 而在整个总线周期中地址信号需保持不变,这就需用地址锁存器将T1周期发出的地址信号锁存起来以在整个总线周期中都能使用,为此8086CPU在T 1 周期提供地址锁存允许信号ALE(正脉冲),用ALE的下降沿将地址信息锁存在地址锁存器中(3分) 共需3片73LS373芯片用作地址锁存器,锁存信息A 19 —A 0 和 BHE

9.8086的最大工作模式和最小工作模式的区别?

答:最小工作方式即单处理器系统方式;在此方式下,全部控制信号由CPU本身提供,它适合于较小规模的应用。CPU工作于最大工作方式时,系统的控制信号由8288总线控制其提供,通常,在最大方式系统中一般包含两个或多个处理器。

10.什么叫重定位?

答:重定位是指一个完整的程序块或数据块可以在存储器所允许的空间内任意浮动并定位到一个新的可寻址的区域。

11.8086指令系统的特点

答:8086与8088的指令系统由8位的8080/8085指令系统扩展而来的,同时又能在其后续的80x86系列的CPU上正确运行。其主要特点是:
       (1) 采用可变长指令,指令格式比较复杂。

       (2) 寻址方式灵活多样,处理数据的能力比较强。

       (3) 有重复指令和乘、除运算指令。扩充了条件转移、移位/循环指令。

       (4) 为加强软件中断功能和支持多处理器系统的工作,增设了有关的指令。

12.总线周期

概念:总线周期通常是指微处理器完成一次访存或I/O端口操作所需的时间。(类似于机器周期)

在8086/8088中,一个最基本的总线周期由4个时钟周期组成, 分别称为4个状态,即T1、T2、T3与T4这4个状态。

*        T1状态:CPU往多路复用总线上发送地址信息,以选中所要寻址的存储单元或外设端口的地址。

*        T2状态:CPU从总线上撤消地址,并使总线的低16位浮置成高阻状态,为传送数据做准备。

*        T3状态,多路总线的高4位继续提供状态信息,而其低16位(对8088 CPU则为低8位)上将出现由CPU写出的数据或者CPU从存储器或端口读入的数据。

*        说明: 若访问设备未准备好,则CPU会在T3之后自动插入1个或多个附加的时钟周期Tw,这个Tw就叫等待状态(CPU在每个总线周期的T3状态开始对READY信号采样。)

*       T4状态:CPU采样数据总线,完成本次读/写操作,    总线周期结束。(要对INTR信号进行采样)

*         说明:只有BIU与内存或I/O端口交换数据,以及填充指令队列时,BIU才执行总线周期。除此之外,既不需要填充指令队列,EU也没有向BIU发出总线周期请求时,系统总线就处于空闲状态,进入空闲周期,空闲周期由一个或几个Ti状态组成。

13.RESET

    复位后,标志寄存器与指令队列缓冲器的原有信息被清除,IP与DS、SS和ES也被清零,而CS被置为FFFFH。当RESET信号变为低电平时,CPU就从FFFF0H开始执行程序。在程序执行时,RESET线保持低电平。

14.指令数据在存储器中的存放

若存放的信息为1个字时,则将字的低位字节放在低地址中,高位字节放在高地址中。(注:对存放的字,若低位字节从奇数地址开始存放,为非规则字;反之,为规则字。读一个规则字需要访问一次存储器,读一个非规则字需要访问两次存储器)

当存放的是双字形式(这种数一般作为指针),其低位字是被寻址地址的偏移量;高位字则是被寻址地址所在的段地址。

15.8086的存储器为什么要分段?

 答案见 6

16. 8086/8088指令的分类

   8086/8088的指令按功能可分为6大类:数据传送、算术运算、逻辑运算、串操作、程序控制和CPU控制

数据传送指令(细分成4类)

  ·   通用数据传送指令

       MOV、PUSH、POP、XCHG、XLAT

  ·   目标地址传送指令

       LEA、LDS、LES

  ·   标志位传送指令

       LAHF、SAHF、PUSHF、POPF

  ·   I/O数据传送指令

       IN、OUT

传送指令:    MOV    DST,  SRC

执行操作:    (DST)  ¬  (SRC)

说明:可实现一个字节或字的传送(例子见教材P66)。

注意:

*  DST、SRC 不能同时为段寄存器     MOV  DS, ES ´

*  立即数不能直接送段寄存器       MOV  DS, 2000H ´

*  DST 不能是立即数和CS

*  DST、SRC 不能同时为存储器寻址

* 不影响标志位

进栈指令:       PUSH  SRC

注意:  

        *  堆栈操作必须以字为单位。

        *  不影响标志位

        *  不能用立即寻址方式   PUSH  1234H     ´

        *  DST不能是CS    POP  CS              ´

        *  并非局限在栈顶操作     MOV AX,[BP][SI]

交换指令:   XCHG  OPR1, OPR2

执行操作:   (OPR1)  «  (OPR2)

注意:  

      *  不影响标志位

      *  不允许使用段寄存器

      *  不能在存储器单元之间交换

换码指令:XLAT  或 XLAT  OPR(通过查表实现)

执行操作:(AL)  ¬  ( (BX) + (AL) )

例:MOV  BX, OFFSET TABLE   ; (BX)=0040H(表预先建立在内存)

        MOV  AL, 3        ;索引值

        XLAT  TABLE

        指令执行后 (AL)=30H

注意:

*  不影响标志位

*  字节表格(长度不超过256字节)

   首地址 ® (BX)

*  需转换的代码位移量  ® (AL)

·   目标地址传送指令

     有效地址送寄存器指令:    LEA  REG, SRC

     执行操作:   (REG) ¬ SRC(存储器)

    

     指针送寄存器和DS指令:   LDS  REG, SRC

     执行操作:     (REG)¬(SRC)      (DS)    ¬  (SRC+2)

      相继二字 ® 寄存器、DS

     

      指针送寄存器和ES指令:  LES  REG, SRC

      执行操作:   (REG)  ¬  (SRC)       (ES)      ¬  (SRC+2)

         相继二字 ® 寄存器、ES 

注意:  

      *  不影响标志位

      *  REG 不能是段寄存器

     *  SRC 必须为存储器寻址方式

·   标志位传送指令

    

     标志送AH指令:    LAHF

     执行操作:       (AH) ¬ (FLAGS的低字节)

    

     AH送标志寄存器指令:   SAHF *(置位/复位)

     执行操作:         (FLAGS的低字节) ¬  (AH)

     标志进栈指令:    PUSHF(转子/中断调用)

     执行操作:      (SP)  ¬  (SP) - 2

                    ( (SP)+1,  (SP) )  ¬  (FLAGS)

     标志出栈指令:    POPF * (转子/中断调用)

     执行操作:      (FLAGS)  ¬  ( (SP)+1,  (SP) )

                         (SP)  ¬  (SP) + 2

*  影响标志位

二、 算术运算类指令(共20条指令)

·   加法指令

      ADD、ADC、INC

·   减法指令

      SUB、SBB、DEC、NEG、CMP

·   乘法指令

      MUL、IMUL 

·   除法指令

      DIV、IDIV、CBW、CWD

执行 REP MOVS 之前,应先做好

(初始化工作):

(1)    源串首地址(末地址)→ SI

(2)    目的串首地址(末地址)→ DI

(3)    串长度 → CX(最大64KB)

(4)    建立方向标志

        (  CLD 使 DF=0,STD 使 DF=1 )  

一个串传送的例子:

data   segment

       mess1  db  ‘personal_computer’;字符数组

data   ends

extra  segment

       mess2  db  17 dup (?)

extra  ends

code   segment

 mov  ax, data    ;不能:mov  ds, data (×)

 mov      ds,ax      ;立即数不能直接送段寄存器

 mov      ax, extra  ;不能:lea  ds, data (×)

 mov  es, ax     ;用于取变量的有效地址

 lea  si, mess1   ;源串首地址

 lea  di, mess2   ;目标串首地址

 mov  cx, 17    ;串长度

 cld            ;建立方向标志     CLD使 DF=0,STD 使 DF=1

 rep  movsb    ;串传送

 …

code   ends

例(续):把 附加段 中的 10 个字节缓冲区置为 20H

lea  di, mess2

mov  al, 20H

mov  cx, 10

cld

rep  stosb

比较例3.66中两串是否完全相同,若两串相同,则BX寄存器内容为0;若两串不同,则BX指向源串中第1个不相同字节的地址,且该字节的内容保留在AL寄存器中。

CLD

      MOV CX,100

      MOV SI,2500H

      MOV DI,1400H

      REPE  CPMSB   ;串比较,直到ZF=0或CX=0 

      JZ EQQ       ;两串相同,置BX为0

      DEC SI       ;将指针修改回第1个不相同字节处

      MOV BX,SI

      MOV AL,[SI]

      JMP STOP     ;必须跳转,否则仍继续执行EQQ

EQQ: MOV BX,0

STOP:HLT

例:试比较两个无符号数80H和79H,则用下面的指令,即

MOV AL,80H

CMP AL,79H

JA  ABOVE

例:试比较两个有符号数80H和79H,则用下面的指令,即 MOV AL,80H

CMP AL,79H

JG  GREATER

第三章习题答案整理

3.3 答:由两部分组成:总线接口单元BIU(Bus Interface Unit),执行单元EU(Execution Unit). BIU的功能是根据执行单元的请求负责CPU与I/O端口或则存储器之间的数据传输。

EU单元的作用是:负责执行指令,执行的指令从BIU的指令队列中取得;运算结果和所需数据,则由EU向BIU发出请求,经总线访问内存或I/O端口进行存取。

3.4 答:组成:4个16位的段寄存器(CS、DS、ES、SS);

             1个16位的指令指针寄存器IP;1个20位的地址加法器;

             1个指令队列(长度为6个字节);

             I/O控制电路(总线控制逻辑);内部暂存器。

段寄存器和地址加法器:8086的内存空间为1M,地址线为20根,但是8086的内部寄存器只有16位,因此采用“段加偏移”技术来解决这一问题,由段寄存器提供段地址,左移4位形成段基址,通过地址加法器与有效地址相加得到20位物理地址。

指令队列:指令队列由6字节的寄存器组成,最多可以存入6字节的指令代码,8086执行指令时,将从内存或则存储器中取出一条或则几条指令依次存入指令队列缓冲器里,他们采用“先进先出”的原则,顺序取到EU中去执行

16位指令指针:IP的功能相当于8位CPU中的PC,正常运行时,IP中含有BIU要去的销一条指令的偏移地址,在程序运行时能自动加1修正,使之指向下一条指令。

3.5 答:并行操作方式是指EU和BIU着两部分同时工作,EU但愿从指令队列头中取指令,只要指令队列不是空,他就一直执行,无需等待。由于8086中的BIU和EU是分开独立设计的,因此,在一般情况下,CPU执行完一条指令后就可以立即执行下一条指令,无需等待。因此说8086可以并行操作。 当EU在执行完转移、调用(包括子程序调用和中断调用)和返回指令时,因指令的执行顺序发生跳转,原来预取到指令队列中的指令将不再执行,需清空指令队列缓冲器。在此情况下,EU才需要等待BIU从新的地址重新开始提取指令。

3.6 答:逻辑地址是指未定位之前在程序中存在的地址,由段地址和偏移地址组成。物理地址是实际访问存储器时的地址(通过20位地址总线传递)。为什么要引入段加偏移思想:1.8086有1M的存储空间,有20根地址线,而CPU的指令指针和堆栈指针都是16位的,只能直接寻址64KB的地址空间,为了能寻址1MB的空间,需要把存储器氛围若干段。

2.存储器的分段的机制允许重定位,由于段寄存器里的段地址可以由程序来重新设定,因而是的程序和数据不需要进行任何修改,就能使他们重定位。

段加偏移的含义是:利用16位的段寄存器的内容确定20位起始地址的高16位,由IP或由EU按照寻址方式找出的16位偏移地址,然后将段基址与偏移地址相加得到一个20位的实际地址,以对存储单元寻址。

3.7 答:指令队列缓冲器的作用是存放从内存或则存储器中取出的指令,供EU执行。8086的指令队列由6字节的寄存器组成,8088的指令队列由4字节的寄存器组成。

3.9 答:不同。段地址左移4位就得到了段基址;是;段寄存器中的内容左移4位得到段基址。

3.20 答:当CPU取指或与I/O端口或者存储器交换数据的时候才执行总线周期。T1~T4状态。如果存储器或则外设的速度比较慢,不能及时跟上CPU的速度时,存储器或则外设通过一个READY信号在T3启动之前发送一个“没有准备好”的信号,并且CPU会在T3启动后插入1个或多个Tw等待状态。

3.26 答:ALE信号时地址锁存信号(Address Lock Enable),它通知地址锁存器8282当前地址为有效地址,可以锁存。 不能。 DT/R(非)控制8286的数据传输方向。当DMA请求时,它被置于高阻状态。

3.28 答:最大工作方式和最小工作方式。MN/MX(非)(非:就是对MX取反)引脚来控制。

最小工作方式即单处理器系统方式;在此方式下,全部控制信号由CPU本身提供,它适合于较小规模的应用。CPU工作于最大工作方式时,系统的控制信号由8288总线控制其提供,通常,在最大方式系统中一般包含两个或多个处理器。

3.32 答(1) 立即数寻址 (2)直接寻址 (3)变址寻址 (4)变址寻址 (5)寄存器寻址 (6)寄存器相对间接寻址 (7)隐含寻址 (8)寄存器寻址 (9) I/O间接寻址 (10)基址寻址

3.33 (1) PA=(DS)*16+(DI) (2) PA=(DS)*16+(BX)+(SI)

(3)  PA=(DS)*16+8+(BX)+(DI)

(4)  PA=(ES)*16+(BX)

(5)  PA=(DS)*16+2400H

(6)  PA=PA=(DS)*16+(BX)+(DI)+1200H

(7) PA=(SS)*16+(BP)+(SI)

(8) PA=(DS)*16+(BX)+(DI)+1200H

3.34 (1) IP不可编程访问,或IP不可作为源操作数出现在普通指令中。(CS,IP,FLAG等都不可编程访问)

(2)cs不可编程访问。

(3)SI+2是对寄存器的非法使用(应为[SI+2])

(4)MOV指令的目标操作数不能为立即数

(5)PUSH指令的操作数不能为立即数

(6)未指明数据长度(可以改为 INC WORD PTR[BX])

(7)乘数不能为立即数且MUL只能完成无符号数的乘法

(8)未知名数据长度(可改为 ADD WORD PTR[2400H],2AH)

(9)MOV指令的两操作数不能同时为存储器操作数

(10) 数据类型不匹配(可改为 MOV SI,AX)

3.36

(1)AX=0ABCH    (2) AX=0ABBH   (3) AX=00BBH    (4)CL=04H

(5) AL = 76H        (6) CL = 76H      (7)CL = EEH     (8) AX = 0076H

(9) BX = 0076H

3.39 (2) PA=(DS)*16+list+(bx)+(si)=11950H

3.47 (1) AND AH,0FH

    (2)  XOR AL,F0H

     (3)   MOV CL,4

           SHR AL,CL

(4)           MOV CL,4

SHL AL,CL

3.50             ADD  AX,AX   ; AX=6264H

JZ  DONE  

SHL  CX , 1    ; CX=0008H

ROR  AX,CX   ;AX=6462H

DONE:    OR AX,1234H    ; AX = 7672H

3.57           AX+DX=0011000100000000B

所以 CF = 0 , AF = 1 , SF = 0 ZF = 0 , OF = 0 PF=1

3.67   MOV    AL,BL

       CBW

       IDIV    CL

       MOV    DL,2

      IMUL    DL

       MOV  DX,AX

3.70           (5)AND [BP],CX

(6) AND BYTE PTR[WAIT1],AL

3.72   (3)  OR  SI , DX

       (5)  OR  [BP] ,CX

3.73   OR  DI , 001F

       MOV  SI , DI

3.75 (1) MOV CL, 3

       SHR DI , CL

    (2) SHL  AL,1

3.78 1)JMP [DI]:该指令为段内间接转移。DI中的内容为指向存储单元的偏移地址,从该地址开始的2个字节中存放着要跳转到的指令的偏移地址,执行指令时,将该偏移地址(DS:DI和DS:DI+1)中的内容送IP,段地址不变。

2) JMP FAR PTR[DI]:该指令为段间间接远转移。DI中的内容为指向存储单元的偏移地址,从该地址开始的4个字节中存放着要跳转到的指令的目标地址,其中,前2个字节为偏移地址,后2个字节为段地址。执行指令时,将该偏移地址送IP,段地址送CS。

3.79  CLD

MOV CX,100

MOV SI,6180H

MOV DI,2000H

REP MOVSB

DEC DI

STD  ;也可直接用MOV DI,2000H

MOV CX,100

SCAN:SCASB

JNZ NEXT

INC DI

MOV BYTE PTR [DI],‘ ’(或20H)

DEC DI

NEXT:LOOP SCAN

MOV AH,4CH  ;终止程序,返回DOS

INT 21H

3.82 答:答案参见 p95 ④ RET 弹出值  p99 IRET

第四章

17.汇编语言是直接面向微处理器编程的程序设计语言,具有执行速度快和易于实现对硬件的控制等独特的优点,所以至今仍然是使用得较多的编程语言。特别是在对于程序的空间和时间要求很高的场合,以及需要直接控制设备的应用场合,汇编语言更是必不可少。

18.汇编语句的4个字段是:

            1)名字或标号;

            2)操作码(指令助记符)或微操作命令;

            3)操作数表(操作数或地址)

            4)注释

19.8086汇编语句的种类:(3种):指令语句,伪指令语句,宏指令语句

20.指令性语句格式:[标号:][前缀]指令助记符[操作数表][;注释]

21.伪指令性语句格式:[名字]伪指令[参数表][;注释]

22. 表达式的求值是由汇编程序完成的。

23.逻辑运算符出现在操作数中时为微操作,其功能在汇编时完成 例如

    MOV AX,75A6H AND 2465H

24. 关系运算符:EQ、NE、LT、GT、LE、GE。

说明:关系运算的结果是一个常数(布尔值)。关系成立,结果为0FFFFH,否则,为0。

25. 变量的定义:1) VAR DB 12;    2) VAR DB 12 DUP(0) (字节串/字符串)

        3) VAR DW 12 DUP(?)(字串)

        4)VAR DB 12 5 DUP(5) (字节串,只给部分字节赋值)

26. 分析运算符:分析运算符用来把存储器操作数(变量或标号)分解为它的组成部分(段地址、偏移值、类型 、数据字节总数、数据项总数等),并以数值形式回送给变量或标号(例子见教材P136)。

 SEG            回送变量或标号的段地址;

 OFFSET      回送变量或标号的偏移量;

 TYPE          回送反映变量或标号类型的一个数值;

 SIZE           回送变量数据区的字节总数;

 LENGTH    回送变量数据区的数据项总数;

 HIGH          取地址表达式或16位绝对值的高8位;

 LOW           取地址表达式或16位绝对值的低8位;

27. $地址计数器

假定进行汇编时,为 VAR 分配的偏移地址为0074H。那么汇编伪指令:   VAR DW 1,2,$+4,3,4,$+4后,该存储区的存储情况如何?

28. 在指令中引用$时,$就表示该指令首地址,与$本身所指向单元无关。

        比如指令:JNZ $+6

       该指令的转移地址是JNZ指令的首地址加上6。当然,$+6必须是某一条指令的首地址,这样才能达到正确转移的目的。

29.DOS及BIOS中断调用前七个

第四章习题整理

4.2 AX=0020H  BX=0202H  CX=0220H

4.3

DATA SEGMENT

X DB ?

Y DB ?

K DB ?

DATA SEGMENT

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AL,X

        MOV BL,Y

        CMP AL,0

        JE ABE          ;落在坐标轴上

        JG ABC          ;落在第1、4象限

        JL BBC          ;落在第2、3象限

 ABC: CMP BL,0

        JE ABE

        JG ABD          ;Y>0,则落在第1象限

        MOV K,4       ;Y<0,则落在第4象限

BBC:  CMP BL,0

        JG BBD          ;Y>0,则落在第2象限

        MOV K,3       ;Y<0,则落在第3象限

ABD:  MOV K,1

BBD:  MOV K,2

ABE:  MOV K,0

CODE  ENDS

END START

4.4 DATA SEGMENT

CHAR1 DB ‘abcdef’

N EQU $-CHAR1

CHAR2 DB N DUP(0)

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:CLD

MOV CX,N

LEA SI,CHAR1

LEA DI,CHAR2

NEXT:LODSB

       SUB AL,32    ;或20H,因小写字母的ASCII码值比大写字母大32

       STOSB

       LOOP NEXT

     CODE  ENDS

END START

4.6

DATA SEGMENT

BUF DB 100 DUP(?)

N EQU $-BUF

LEN DW ?

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:CLD

        MOV AX,DATA

        MOV DS,AX

        MOV CX,N

        MOV DI,OFFSET BUF

        MOV AL,‘A’

      REPNE SCASB

      DEC DI

      LEA SI,BUF  ;有这两句更好一点

      SUB DI,SI    ;有这两句更好一点

      MOV LEN,DI

      MOV AH,4CH

      INT 21H

CODE  ENDS

END START

4.8

4.9 (1) BX = 54CBH  (2) BX = 54EBH   (3) BX=0000H (4) 543BH 

(5) BX=545CH   (6)BX = 54A3H

4.11 PLENTH的值是34 ,其物理意义:变量P1和P2共占用了34字节的内存空间。

4.13 P151 冒泡排序法

4.14

data segment

buf db 11,-22,33,05,-7        (当然也可这样:buf db 10 dup(?))

N EQU $-buf

min db ?

max db ?

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov cx,N-1    ;比较次数(找最大数和最小数)

mov si,0

mov al,buf[si]   ;大数放入AL寄存器

mov bl,buf[si]   ;小数放入BL寄存器

next:  cmp al,buf[si+1]

        jge sto1

        mov al,buf[si+1]

sto1:   cmp bl,[si+1]

        jle sto2

        mov bl,[si+1]

sto2:  inc si

       loop next

       mov max,al   ;最大数存入max单元   (这样语法上也是对的:mov [max],al)

       mov min,bl   ;最小数存入min单元

mov ah,4ch

int 21h

code ends

end start

4.20 data segment

NAME1 DB 9

       DB ?

       DB 9 DUP(?)

WEL  DB 'Welcome ','$'    ;Welcome后带一个空格

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

LEA DX,NAME1

MOV AH,0AH

INT 21H

MOV DI, NAME1[1]

MOV NAME1[DI+2],’$’  ;将所输入字符串后的第一个字节空间(存放回车符0DH)更换为‘$’字符

NEXT: MOV AH,01H

      INT 16H

      JZ NEXT     ;键盘输入的ROM BIOS中断调用,判断有无按键

      LEA DX,WEL

      MOV AH,9

      INT 21H     ;中断调用,显示Welcome

      LEA DX,NAME1[2]

      MOV AH,9

      INT 21H     ;中断调用,显示输入的人名

      MOV AH,4CH

      INT 21H

code ends

end start

第六章

重点:

1.  中断源向CPU发中断请求信号的条件(p211)

 2. Cpu响应中断的条件(p212)

3.  内部中断(p216)

4. 中断向量表(p218)

5.  可屏蔽中断的执行过程(p221)

6.  中断响应时序(p223)

第六章习题整理

6.4 答:三态门上有个使能端,只有在有效电平的时候才能与总线通信,在高阻态时输入输出相互隔断。有多个外设接口要挂到数据总线上,但是在某一时刻数据总线只能与一个外设端口通信。因此需要总线控制管理,访问到那个端口的使能端处于有效电平,其才能与总线通信。

6.9 答案参见 P213 CPU响应中断及处理过程

6.13 答案参见P217

6.19 答案参见 p221

第七章

1.8259A:作用

         两种控制字的类型及差别

         支持哪些优先级处理方式

 知道特殊的屏蔽方式

2.8255: 连线

    初始化

    应用

补充题:为什么I/O接口芯片的地址线A0要和8086系统总线的A1相连?

参考答案要点:1)在8086系统中,数据总线为16位,而I/O接口芯片只有8条数据引线。因此,应让CPU和I/O接口芯片之间的数据传输通过数据总线的低8位进行。

2)将地址总线的A1和I/O接口芯片的A0端相连,A0浮空,从CPU的角度看,是用两个相邻的偶地址来作为I/O接口芯片的端口地址,同时仍满足接口内部对一奇一偶两个相邻端口地址的要求,从而可以保证用数据总线的低8位和I/O接口芯片交换数据。

3)这样的连接方式也和8088系统利用8位数据总线进行传输保持兼容。

更多相关推荐:
微机原理知识点总结

微机原理复习总结第1章基础知识计算机中的数制BCD码与二进制数11001011B等值的压缩型BCD码是11001011BF第2章微型计算机概论计算机硬件体系的基本结构计算机硬件体系结构基本上还是经典的冯设备5个...

微机原理知识点总结

微处理器简称P或MPMicroprocessor是指由一片或几片大规模集成电路组成的具有运算器和控制器功能的中央处理器部件又称为微处理机微型计算机简称C或MC是指以微处理器为核心配上存储器输入输出接口电路及系统...

微机原理知识点总结

微处理器简称P或MPMicroprocessor是指由一片或几片大规模集成电路组成的具有运算器和控制器功能的中央处理器部件又称为微处理机微型计算机简称C或MC是指以微处理器为核心配上存储器输入输出接口电路及系统...

微机原理复习知识点总结

1所谓的接口其实就是两个部件或两个系统之间的交接部分位于系统与外设间用来协助完成数据传送和控制任务的逻辑电路2为了能够进行数据的可靠传输接口应具备以下功能数据缓冲及转换功能设备选择和寻址功能联络功能接收解释并执...

微机原理与接口知识点总结

微机原理与接口知识点总结1绪论计算机系统组成冯诺依曼体系结构进制之间的转换数的原码反码补码表示补码加减法运算溢出判断2通用计算机工作原理指令格式存储器模型程序如何自动执行3CPU工作原理CPU的基本构成运算器控...

微机原理与接口技术知识点总结

第一章概述一计算机中的数制1无符号数的表示方法1十进制计数的表示法特点以十为底逢十进一共有09十个数字符号2二进制计数表示方法特点以2为底逢2进位只有0和1两个符号3十六进制数的表示法特点以16为底逢16进位有...

微机原理复习总结

一填空132的补码是E0H字节补码CAH所代表的真值是542压缩BCD数1000H所对应的十进制数为1000十六进制数为3E8H二进制数为1111101000BASCII码为313030303微型计算机主要由C...

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

微机原理18086从功能上分成两大部分总线接口单元BIU负责8086CPU与存储器和IO设备间的信息传送执行单元EU负责指令的执行2执行工作方式8位微处理器串行工作8086并行工作38086微处理器的执行环境地...

w机械原理知识点与学习重点

机械原理知识点与学习重点绪论本课程研究的对象及内容机器的概念机构的概念学习本课程的目的和方法机构的结构分析机构的组成构件运动副高副低副机构原动件从动件机构运动简图机构具有确定运动的条件平面机构自由度的计算自由度...

机械原理知识点key

知识点第12章1机械是机器和机构的总称各种机构都是用来传递与变换运动和力的可动的装置机器是据某种使用要求而设计的用来变换或传递能量物料和信息的执行机械运动的装置2机器中每一个独立的运动单元体称为一个构件3由两个...

机械原理考试知识点

机械原理考试知识点第一篇基本机构及常用机构的运动学设计第一章绪论1了解机械原理的研究对象及主要内容2了解机械原理的地位和作用3了解机械原理的学习目的和方法第二章机构的结构分析与综合1掌握有关机构的概念如构件运动...

《机械制造技术基础》知识点整理

机械制造技术基础知识点整理1制造过程由技术准备毛坯制造机械加工热处理装配质检运输储存等过程组成2制造工艺过程技术准备机械加工热处理装配等一般称为制造工艺过程3机械加工由若干工序组成4机械加工中每一个工序又可分为...

微机原理知识点总结(27篇)