微机原理与接口技术——基于8086和Proteus仿真(第2版)-习题参考答案.pdf

上传人:赵** 文档编号:38703408 上传时间:2022-09-04 格式:PDF 页数:59 大小:2.11MB
返回 下载 相关 举报
微机原理与接口技术——基于8086和Proteus仿真(第2版)-习题参考答案.pdf_第1页
第1页 / 共59页
微机原理与接口技术——基于8086和Proteus仿真(第2版)-习题参考答案.pdf_第2页
第2页 / 共59页
点击查看更多>>
资源描述

《微机原理与接口技术——基于8086和Proteus仿真(第2版)-习题参考答案.pdf》由会员分享,可在线阅读,更多相关《微机原理与接口技术——基于8086和Proteus仿真(第2版)-习题参考答案.pdf(59页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1.答:为了区别所使用的数制,一般用以下两种书写格式表示: 用括号将数字括起,后面加数制区分,数制用下标的形式给出; 用后缀区分, 二进制数、 十进制数、 八进制数、十六进制数的后缀分别为字母B或b 、D或 d 、O或 o或 Q或 q 、H或 h 。例如:十六进制数 56.78 可以表示成(56.78)16 或 56.78H;十进制数 56.78 可以表示成(56.78)10 或 56.78D。2.答:123D 采用十进制,0AFH 采用十六进制,77Q 采用八进制,1001110B采用二进制。3.答:字长为 8 位的二进制数原码表示的最大值:127,最小值:-127;补码表示的最大值:127

2、,最小值:-128。字长为 16 位的二进制数原码表示的最大值:32767,最小值:-32767;补码表示的最大值:32767,最小值:-32768。4.答:(1)125D=0111 1101B=7DH(2) 255D=1111 1111B=FFH(3)72D=0100 1000B=48H(4)5090D=0001 0011 1110 0010B=13E2H5.答:1(1)1111 0000B=240D=F0H(2) 1000 0000 B =128D =80H(3)1111 1111 B =255 D =FFH(4)0101 0101B=85D=55H6.答:(1)FFH=255D=1111

3、 1111B(2) ABCDH=43947D=1010 1011 1100 1101B(3) 123H=291D=0000 0001 0010 0011B(4) FFFFH=65535D=1111 1111 1111 1111B7.答:(1)8 位时(16)原=0001 0000 ; (16)补=0001 0000;16 位时(16)原=0000 0000 0001 0000 ; (16)补=0000 0000 0001 0000;(2) 8 位时(-16)原=1001 0000 ; (-16)补=1111 0000;16 位时(-16)原=1000 0000 0001 0000 ; (-16

4、)补=1111 1111 1111 0000 ;(3) 8 位时(+0)原=0000 0000; (+0)补=0000 0000;16 位时(+0)原=0000 0000 0000 0000; (+0)补=0000 0000 0000 0000;(4) 8 位时(-0)原=1000 0000 ; (-0)补=0000 0000;16 位时(-0)原=1000 0000 0000 0000; (-0)补=0000 0000 0000 0000;(5) 8 位时(127)原=0111 1111 ; (127)补=0111 1111 ;16 位时(127)原=0000 0000 0111 1111

5、; (127)补=0000 0000 0111 1111 ;(6) 8 位时-128 超过原码表示的范围; (-128)补=1000 0000;16 位时(-128)原=1000 0000 1000 0000; (-128)补=1111 1111 1000 0000 ;(7) 8 位时(121)原=0111 1001 ; (121)补=0111 1001;216 位时(121)原=0000 0000 0111 1001; (121)补=0000 0000 0111 1001;(8) 8 位时(-9)原=1000 1001 ; (-9)补=1111 0111;16 位时(-9)原=1000 00

6、00 0000 1001; (-9)补=1111 1111 1111 0111 ;8.答:1 x补=1100 0010; 2-x补=0000 1101; 3x原=1100 0010; 4x反=1011 1101。9.答:1AB; 2AB10.答:1溢出; 213H; 3溢出; 4EDH; 5EDH。11.答:11000 1000; 21110 1110; 30110 0110; 41010 1100;50000 0000; 61010 1100; 7=0101 0011。12.答:130H=48,字符为0 ; 239H=57,字符为9 ; 342H=66,字符为B ;462H=98,字符为b

7、; 520H=32,字符为空格; 67H=7,字符为报警符;13、答:十进制压缩 BCD 码非压缩 BCD码490100 1001B0000 0100 00001001B1230001 0010 0011B0000 0001 00000010 0000 0011B70000 0111B0000 0111B620110 0010B0000 0110 00000010B3ASCII 码3439H313233H37H3632H41.1答:物理地址:物理地址PA是 20 位无符号二进制数,是 CPU 访问存储器的实际地址。每个存储单元对应一个物理地址。8086 存储空间的物理地址范围是:00000HF

8、FFFFH。逻辑地址: 采用分段结构的存储器中, 把通过段地址和偏移地址来表示的存储单元的地址称为逻辑地址,记为:段地址:偏移地址。段地址: 8086规定各逻辑段从节的整数边界开始, 即段首地址二进制值的低4位是0000,把段首地址的高 16 位称为段基址或段地址。偏移地址:把某一存储单元相对于段地址的段内偏移量称为偏移地址也称有效地址EA 。段地址和偏移地址都是是16 位无符号二进制数。2答:时钟周期:电脑的“时钟”是由振荡源产生的、幅度和周期不变的节拍脉冲,每个脉冲周期称为时钟周期,又称为T 状态或 T 周期,时钟周期是微机系统工作的最小时间单元。总线周期:当CPU 访问存储器或输入/输出

9、端口时,需要通过总线进行读或写操作,这个过程称为总线周期Bus Cycle 。总线周期是利用总线完成一次读/写所需要的时间。指令周期:执行一条指令所需要的时间称为指令周期Instruction Cycle 。指令周期由1 个或多个总线周期组成。3答:最小模式:也称为单处理器模式,是指系统中只有一片8086 微处理器,所连接的存储器容量不大、片子不多,所要连接的 I/O 端口也不多,系统的控制总线就直接由 CPU 的控制线供应,从而使得系统中的总线控制电路减到最少。最小模式适用于较小规模的系统。最大模式: 相对于最小模式而言, 适用于中、 大型规模的系统。 系统中有多个微处理器,其中一个是主处理

10、器 8086,其他的处理器称为协处理器,承担某方面专门的工作。需要增加一片 8288 来对 8086CPU 发出的控制信号进行变换和组合, 以得到对存储器或 I/O 端口的读/写信号和对锁存器、总线收发器的控制信号。2.答:EU:负责指令的执行,即从总线接口部件BIU 的指令队列取指令,指令执行后向BIU送回运算结果,同时把运算结果的状态特征保存到标志寄存器中。5BIU:负责CPU 与存储器、I/O 设备之间的数据传送。BIU 完成以下操作:取指令送给指令队列、 配合执行部件从指定的内存单元或者外设端口中取数据、 将数据传送给执行部件或者把执行部件的操作结果传送到指定的内存单元或外设端口中。8

11、086 的 BIU 和 EU 在很多时候可以并行工作,使得取指令、指令译码和执行指令这些操作构成操作流水线。 当指令队列中有两个空字节,且 EU 没有访问存储器和 I/O 接口的要求时,BIU 会自动把指令取到指令队列中。 当 EU 准备执行一条指令时,它会从指令队列前部取出指令执行。在执行指令的过程中,如果需要访问存储器或者I/O 设备,那么 EU 会向 BIU 发出访问总线的请求,以完成访问存储器或者 I/O 接口的操作。如果此时BIU 正好处于空闲状态,那么,会立即响应EU的总线请求;但如果 BIU 正在将某个指令字节取到指令队列中,那么,BIU 将首先完成这个取指令操作,然后再去响应E

12、U 发出的访问总线的请求。 当指令队列已满,而且EU 又没有总线访问时,BIU 便进入空闲状态。 在执行转移指令、调用指令和返回指令时,下面要执行的指令就不是在程序中紧接着的那条指令了, 而 BIU 往指令队列装入指令时, 总是按顺序进行的。 在这种情况下, 指令队列中已经装入的指令就没有用了, 会被自动消除。随后,BIU 会往指令队列中装入另一个程序段中的指令。3.答:地址信号是 CPU 发送给内存或 I/O 设备的,所以地址线是单向的;数据信号可以从 CPU 发送给内存或 I/O 设备,也可以从内存或 I/O 设备发送给 CPU,故而数据线是双向的。4.答:8086CPU 中有 14 个寄

13、存器。它们是:4 个 16 位的通用寄存器:AX、BX、CX、DX 和8 个 8 位的通用寄存器:AH、AL、BH、BL、CH、CL、DH、DL;指针和变址寄存器 SP、BP、 SI、DI;4 个 16 位的段寄存器 CS、DS、SS 和 ES;标志寄存器FR;指令指针寄存器IP。功能略。65.答:1加法运算的结果为:CEACH;CF=0,PF=1,AF=0,ZF=0,SF=1,OF=1;2加法运算的结果为:68ACH;CF=0,PF=1,AF=0,ZF=0,SF=0,OF=0;3加法运算的结果为:DDDDH;CF=0,PF=1,AF=0,ZF=0,SF=1,OF=0。6.答:8086CPU

14、可寻址的存储器地址范围是00000HFFFFFH;可寻址的 I/O 端口地址范围是 0000HFFFFH。7.答:由于 8086CPU 提供 20 位地址,但 8086 中可用来存放地址的寄存器, 如 IP、SP、BX、SI 等都是 16 位的,只能直接寻址 64KB。为了寻址 1MB 存储空间,8086CPU 采用了典型的存储器分段技术, 即将整个存储器空间分为许多逻辑段, 每个逻辑段的容量小于或等于64KB。分段后,对存储器的寻址操作不再直接用20 位的物理地址,而是采用段地址加段内偏移地址的二级寻址方式。8.答:将 AH 的内容送存储单元的操作过程中:M / IO 1,WR 0,RD 1

15、,DT / R 1;将 I/O 端口的内容送 AL 的操作过程中:M / IO 0,WR 1,RD 0,DT / R 0。9.答:BHEA0有效的数据引脚AD15AD0一个总线周期同时访问奇体和偶操作从偶地址读 /写一个字00体,从奇地址单元读/写字数据的高 8 位,从偶地址单元读/写字数据的低 8 位10AD7AD0从偶地址读 /写一个7字节从奇地址读 /写一个字节01AD15AD8AD15AD8第一个总线周期从奇字数据的低 80110位AD7AD0第二个总线周期从偶地址单元读/写字数据的高 8 位从奇地址读 /写一个字10.答:8086 系统复位后, 指令指针 IP 为 0000H; CS

16、 寄存器为 FFFFH, 其他寄存器为 0000H;指令队列清空。11.答:8086 的 A19/S6A16/S3 和 AD15AD0 是复用信号, 需要地址锁存器将地址信息保存起来,为外接存储器或外设提供地址信息。需要锁存的信号是:地址信号及BHE信号。12.答:8086CPU 一个基本的总线周期包含4 个时钟周期:T1、T2、T3 和 T4 。在 T1 状态,M/IO有效,指示 CPU 访问的是存储器还是外设,之后CPU 往多路复用总线上发出地址信息,以指出要寻址的存储单元或外设端口的地址。在T1 状态,CPU 还必须在 ALE 引脚上输出一个正脉冲作为地址锁存信号。BHE信号也在 T1

17、状态送出,它用来表示数据传送的字宽。在 T2 状态,CPU 从总线上撤销地址,使总线的低 16 位浮空,置成高阻状态,为传输数据作准备。总线的最高 4 位A1916用来输出本总线周期的状态信息。读信号RD或写信号WR在 T2 状态变为有效,指示CPU 将进行哪种操作读或写 。在 T3 状态, 多路总线的高 4 位继续提供状态信息, 而多路总线的低 16 位上出现由 CPU读出的数据或者 CPU 从存储器或端口写入的数据。在 T4 状态和前一个状态的交界处,CPU 对数据总线进行采样,获得数据,总线周期结8束。13.答:在有些情况下,外设或存储器速度较慢,不能及时地配合CPU 传送数据。这时,外

18、设或存储器会通过“READY”信号线在 T3 状态启动之前向 CPU 发一个“数据未准备好”信号,于是 CPU 会在 T3 之后插入 1 个或多个附加的时钟周期 TW。取决与外设或存储器速度。14.答:两种操作时序的不同之处发生在T1 和 T2 状态。 在 T1 状态,读周期:DT/R应输出低电平;写周期:DT/R应输出高电平。 在 T2 状态,读周期:RD有效,而WR无效,AD15AD0 为高阻态;写周期:RD变为无效,而写信号WR变为有效,AD15AD0 在地址撤销之后立即送出要写入存储器或外设端口的数据。15.答:在最小模式下,读信号RD、ALE 和DT/R、DEN等信号直接由 CPU

19、给出;在最大模式下, 总线控制器8288根据S ,S和S状态信号产生读信号MRDC和IORC,021ALE 和DT/R、DEN 也是由 8288 发出的,而且 DEN 信号的极性与 CPU 在最小模式下发出的DEN信号正好相反。91.答:指令中关于如何求出操作数有效地址的方法称为寻址方式。8086CPU 支持多种寻址方式,根据操作数的类型及来源大致分为 3 类:数据寻址、转移地址寻址和 I/O 寻址。2.答:8086 汇编指令可以采用 7 种基本的数据寻址方式:立即寻址;寄存器寻址;直接寻址;寄存器间接寻址;寄存器相对寻址;基址变址寻址;相对基址变址寻址。与存储器寻址方式后 5 种相比,寄存器

20、寻址方式最快。3.答:如果指令中没有用前缀说明操作数存放在哪个段,则操作数默认存放在数据段。8086 系统允许操作数存放在代码段、堆栈段或附加段。此时,就需要在指令中利用前缀指明段超越。例如:MOVES:1225H,AX4.答:1寄存器寻址方式2寄存器间接寻址方式,PA=10300H3寄存器间接寻址方式,PA=20200H4直接寻址方式,PA=10060H5基址变址寻址方式,PA=10500H6相对基址变址寻址方式,PA=12300H7直接寻址方式,PA=11000H8寄存器相对寻址方式,PA=10306H9直接寻址方式,PA=10065H5.答:1016.答:1源操作数的寻址方式不同。MOV

21、AX,3000H 指令的源操作数采用的是立即数寻址方式,MOVAX,3000H指令的源操作数采用的是直接寻址方式。2指令执行后,AX 的值不同。MOVAX,MEM 指令执行后,AX 得到的是 MEM单元的内容,而 MOVAX,OFFSET MEM指令执行后,AX 得到的是 MEM 单元的地址。3 指令不同。 MOVAX,MEMMOVAX,MEM 指令执行后, AX 得到的是 MEM 单元的内容,而 LEAAX,MEM 指令执行后,AX 得到的是 MEM 单元的地址。4转移的类型不同。 JMPSHORT L1指令实现的是段内转移,而JMPNEAR PTRL1 指令实现的是段间转移。5 指令的执行

22、结果不同。 CMPDX,CX 指令执行后, DX 的值不变, 而 SUBDX,CX指令执行后,DX 的值是两寄存器值的差。6 操作数所在段不同。 MOVBPSI,CL 指令访问的是堆栈段的存储单元, 而 MOVDS:BPSI,CL 指令访问的是数据段的存储单元。7.答:1MOVBYTEPTR BP,200 指令执行后, 58200H=200H2MOVWORDPTR BX,2000 指令执行后, 22400H=2000H8.答:当前栈顶地址是:FE00H:2010H;执行 PUSH BX 指令后,栈顶地址变为:FE00H:200EH,栈顶 2 字节内容是:3457H。9.答:1 DX=3C62H

23、,CF=12 DX=03C6H,CF=03 DX=18A0H,CF=1234567891011114 DX=2BC6H,CF=05 DX=18B7H,CF=16 DX=BCC5H,CF=010.答:(1)(2)(3)(4)(5)(6)11.答:(1) CMP CX,DXJA NEXT(2)CMP AX,BXJNA NEXT(3)CMP DX,0JZ NEXT(4)CMP CX,DXJBE NEXT12.答:(1)程序转向 L1。(2)程序转向 L1。AX134EH0821HF142H0A69F5960A69CF0011-0ZF0000-0OF0000-0SF0011-0PF1111-112(3

24、)程序转向 L2。(4)程序转向 L5。(5)程序转向 L5。13.答:因为普通运算指令执行的是二进制数的运算,而BCD 码是十进制数,所以,需要对运算结果进行十进制调整。在做 BCD 码的加、 减和乘法运算时, 十进制调整指令放在运算指令之后; 而作 BCD 码的除法运算时,在运算指令之前用十进制调整指令对被除数进行调整。14.答:MOV Cl,3SHR bx,cl15.答: 略16.答:13DATASEGMENTCOUNT=100HORG 1000HDUP(?)D_DATADB COUNTORG 2170HS_DATADBCOUNT/5DUP(1,2,3,4,5)ENDSSEGMENTDA

25、TACODEASSUME CS:CODE,DS:DATA,ES:DATASTART:MOVMOVMOVLEALEAMOVREPMOVAX,DATADS,AXES,AXSI,S_DATADI,D_DATACX,COUNTMOVSBAL,11417.答:CODESEGMENTASSUME CS:CODESTART:MOVAX,5678HMOVNOTNOTADDADCAH,4CH21HDX,1234HAXDXAX,1DX,0EXIT:MOVINTCODEENDSEND START18. 答:;本程序未考虑溢出的情况。DATASEGMENTA1 DW 5050HA2 DW ?A3 DW ?ENDSSE

26、GMENT;存 A1 的反码;存 A1 的补码DATACODEASSUME CS:CODE,DS:DATASTART:MOVAX,DATA1519. 答:DATASEGMENT3481HDB 12HDB ?,?,?;AT 5000HORGDATDATACODEENDSSEGMENTASSUME CS:CODE,DS:DATA16AX,DATASTART:MOV20. 答:COUNT=1000DATASEGMENTORG1000H10DUP (12H,-5,-3,0,-128,56H,98H,4,128,200)2000HDB ?DATDBORGMINDATENDSDATACODESEGMENT

27、ASSUME CS:CODE,DS:DATASTART:MOVMOVLEAMOVDECAX,DATADS,AXSI,DATCX,COUNTCX1721. 答:DATASEGMENTDBhELLO!STRING1COUNT1=$-STRING1STRING2DBhEL1O!COUNT2=$-STRING2IMNMDB MATCH$DB NOT MATCH$DATACODEENDSSEGMENTASSUME CS:CODE,DS:DATASTART:MOVMOVAX,DATADS,AX181922. 答:DSEGSEGMENTDATADB 5,6,7,8DW ?DATA2 DB 1,10,100,

28、20ENDSSEGMENTDSEGCODEASSUME CS:CODE,DS:DSEGSTART:MOVMOVMOVMOVLEALEAAX,DSEGDS,AXDX,0CX,4SI,DATADI,DATA2NEXT:MOVMOVCALLADDAL,DIBL,SIDOMULDX,AX2023. 答:MOVMOVMOVCX,100AX,SEGDS,AXAX,SEGES,AXSI,LISTBLKLISTMOVMOVLEA2124. 答:DSEGSEGMENTBUFFER DW 8DB 12345678DSEGENDSSEGMENTCODEASSUME CS:CODE,DS:DSEGSTART:MOVM

29、OVMOVSARLEAMOVADDAX,DSEGDS,AXCX,BUFFERCX,1SI,BUFFERDI,SIDI,2AGAIN:ADDMOVANDSALSALSALSALORMOVINCLOOPAH,4CH21HSI,2AL,SIAL,0FHBYTE PTR SI+1,1BYTE PTR SI+1,1BYTE PTR SI+1,1BYTE PTR SI+1,1AL,BYTE PTR SI+1DI,ALDIAGAINEXIT:MOVINTCODEENDSENDSTART2225. 答:JMP SHORT LAB指令是一条双字节指令。这条指令取出后,(IP)=0102H,转移目标的偏移地址=(

30、IP)+位移量。所以,转移目标的物理地址=(CS)16+(IP)+位移量。1转移目标的物理地址=(CS)16+0158H2转移目标的物理地址=(CS)16+0182H3转移目标的物理地址=(CS)16+017AH4转移目标的物理地址=(CS)16+01E2H26. 答:DSEG27. 答:SEGMENTORG 10HDATDB10DB?DSEGCODEENDSSEGMENTASSUME CS:CODE,DS:DSEGSTART:MOVMOVMOVMOVSALAX,DSEGDS,AXAL,DATBL,ALBL,1ADDAL,BLMOVSALCL,2BL,CLADDAL,BLMOVAH,4CHDA

31、T+1,ALEXIT:MOVINT 21HCODEENDSEND STARTDSEGSEGMENTORGDAT10HDB 10H,20HDB ?,?DSEGCODEENDSSEGMENT23ASSUME CS:CODE,DS:DSEGSTART:28. 答:DSEGSEGMENTBLOCK DW 8 DUP (10H,20H,-3,-9)DSEGENDSCODESEGMENTASSUME CS:CODE,DS:DSEGSTART:MOVMOVAX,DSEGDS,AXSI,BLOCKCX,32LEAMOVAGAIN:MOVCMPJNSNEGMOVAX,SIAX,0NEXTAXSI,AX24NEX

32、T:INC SI29. 答:DSEGSEGMENTORGDW3030H1234H,-1234H,?,?DATDSEGCODEENDSSEGMENTASSUME CS:CODE,DS:DSEGSTART:MOVMOVMOVMOVIMULAX,DSEGDS,AXAX,DATBX,DAT+2BX251. 答:标号是指令的符号地址,可用作控制转移指令的操作数。标号具有 3 种属性:段属性、偏移属性和类型属性。2. 答:变量是存储单元的符号地址。变量具有 3 种属性:段属性、偏移属性和类型属性。3. 答:伪指令语句,也称指示性语句, 是不可执行语句,汇编后不产生目标代码,它仅仅在汇编过程中告诉汇编程序如

33、何汇编源程序。宏是一个以宏名定义的指令序列。 一旦把某程序段定义成宏, 则可以用宏名代替那段程序。在汇编时,要对宏进行宏展开, 即把以宏名表示的地方替换为该宏对应的指令序列的目标代码。宏指令可以看成指令语句的扩展,相当于多条指令语句的集合。4. 答:汇编语言表达式中有如下运算符: 算术操作符、 逻辑操作符、 移位操作符、 关系操作符、数值回送操作符和属性操作符。操作符所完成的运算在汇编阶段进行。5. 答:略。6. 答:1DB12DB23BD3DBDBDWEQU10HDUP(1,2, 5 DUP(3),4)STUDENT12H,0ABCDHDB2-DB14COUNT7. 答:26第一个 OR 表

34、示该指令是 OR 指令,在程序运行时,该OR 操作被执行。第二个 OR 是逻辑操作符 OR,在汇编时,OR 运算被执行。8. 答:1 AX=12 AX=23 CX=54 DX=0AH5 CX=16 DX=49. 答:略。10. 答:DSEGSEGMENTSTRINGDBNEXT123DF$ENDSSEGMENTDSEGCODEASSUME CS:CODE,DS:DSEGSTART:MOVMOVLEAMOVAX,DSEGDS,AXSI,STRINGCX,0AGAIN:MOVCMPJZAL,SIAL,$NEXT2711. 答:DSEGSEGMENTSTRINGDBIt is FEB&03COUNT

35、=$-STRINGENDSSEGMENTDSEGCODEASSUME CS:CODE,DS:DSEGSTART:MOVMOVAX,DSEGDS,AXLEASI,STRINGMOVCX,COUNTAGAIN:MOVCMPAL,SIAL,&28JNZ NEXT12. 答:DSEGSEGMENTBLOCKDB4,5,-2,7,8,9,2,1,0AH,1BH,87H,23H,44H,33H,45H,28H,0DH,8EH,66H,22HCOUNT=$-BLOCKENDSSEGMENTDSEGCODEASSUME CS:CODE,DS:DSEGSTART:MOVMOVLEAMOVAX,DSEGDS,AX

36、SI,BLOCKCX,COUNTAGAIN:MOVMOVMOVAL,SIDI,SIDX,CXNEXT1:CMPJGEXCHGAL,DINEXTAL,DINEXT:INCDECDIDX2913. 答:(3)(4)(2)(5)(1)(6)上表左侧的序号,表示对应操作完成后SP 指向的栈顶的位置。1B50H1000H1A70H150BH3014. 答:PROCSUB1MOVMOVROLMOVANDMOVMULPUSHMOVROLMOVANDMOVMULPOPADDPUSHMOVROLMOVANDMOVMULPOPADDMOVROLANDADDRETBX,AXCL,4BX,CLAX,BXAX,000F

37、HCX,1000CX ;千位在 DX,AX,有效值在 AX 中AXCL,4BX,CLAX,BXAL,0FHCL,100CL ;百位在 AXCXAX,CX;千百位在 AXAXCL,4BX,CLAX,BXAL,0FHCL,10CL ;十位在 AXCXAX,CX;千百十位在 AXCL,4BX,CLBX,0FHAX,BX31SUB2PROCDX,0CX,1000CX千位数字在 AX 中BX,AXCL,4BX,CL千位数字移至 BX 的高 4 位AX,DXCL,100CL百位数字在 AL 中BH,AL千百位置 BHAL,AHAH,0CL,10CL十位数字在 AL 中,个位在 AH 中CL,4AL,CLB

38、L,AL十位数字置 BL 高 4 位BL,AH十位个位置 BLAX,BXMOVMOVDIVMOVMOVRORMOVMOVDIVORMOVMOVMOVDIVMOVSALMOVORMOVRETENDPSUB2SUB3PROCBXBX,0DI,ASCNUMAX,0CHGAXN5:MOVMOVMOVDIVAL,AHAH,0CL,10CLBX,0N6PUSHMOVLEACMPJNSNEG32CMPJNZ3315. 答:CODESEGMENTASSUME CS:CODESTART:MOVINTCMPJBCMPJASUBAH,121HAL,aNOCHGAL,zNOCHGAL,20HNOCHG:MOVMOVD

39、L,ALAH,23416. 答:;键盘输入的成绩以逗号分割;输入完毕按回车结束DSEGSEGMENTSUBNEXT:AX,DSEGDS,AXDX,STRINGMOVINCMOVINCINCCMPJNZDI,ALDIAL,0BHSIBL,0DHAGAINBL,30HCL,10CLAL,BLSIAGAINADDS9:INCS9MOVMULADDINCJMPJMP TJNEXTSTRINGDB40,?,40 DUP(?)CJS6S7S8S9DB10 DUP(?)DB?DB?DB?DB?ADDS8:INCS8JMP TJNEXTADDS7:INC S7JMP TJNEXTADDS6:INC S6S10

40、 DB?ENDSSEGMENTDSEGCODEASSUME CS:CODE,DS:DSEGTJNEXT:INC DIDEC BHJNZ TJ1START:MOVMOVLEATJ:TJ1:MOVCMPJZAL,DIAL,100LEADI,CJADDS10AL,90ADDS935CMPJAE17.21.答:略。略。1半导体存储器的分类如下:2随机存取存储器 RAM,又称为读/写存储器,其每个存储单元的内容可以随时按需要进行读/写操作。RAM 主要用来保存各种输入/输出数据、中间结果、与外存交换的信息,也可作堆栈使用。 而 ROM 的内容只能读出, 不能写入或改写, 一般用来存放固定的程序和数据。3

41、63半导体存储器的主要技术指标: 存储容量、读/写速度存取时间和存储周期 、可靠性。48086CPU 和存储器连接时要考虑:存储芯片数,AB、DB 和一些控制信号的连接,奇、偶片的设置,地址译码方式等。5常用的存储器地址译码方式有:全地址译码、部分地址译码、线选法。6. 需要(16k8)/(10241)=128 片,CPU 地址线中片内寻址 10 位,片外 4 位。7A A1616A A1 1D D1515D D8 8D D7 7D D0 0.A A1515A A0 0D D7 7D D0 0A A1515A A0 0D D7 7D D0 0A A1515A A0 0D D7 7D D0 0A

42、 A1515A A0 0D D7 7D D0 0A A1515A A0 0D D7 7D D0 0A A1515A A0 062512RAM62512RAMWRWROEOE62512RAM62512RAMWRWROEOE62512RAM62512RAMWRWROEOE62512RAM62512RAMWRWROEOE28512EEPROM28512EEPROMWRWROEOE28512EEPROM28512EEPROMWRWROEOE.RDRDWRWR.CSCS.CSCS.CSCS.CSCS.CSCS.BHEBHEA A0 0.Y Y0 0G GY YG G2B2B1 1Y YG G2A2A2

43、2Y Y3 3Y Y4 4C CY Y5 5B BY Y6 6A AY Y7 774LS13874LS13811.11.1M/IOM/IO.A A1919A A1818A A1717.837.CSCS1D D7 7D D0 0.A A1616A A1515A A1 1D D1515D D8 8D D7 7D D0 0.D D7 7D D0 0CSCS.D D7 7D D0 0CSCS.D D7 7D D0 0CSCS.D D7 7D D0 0A A1414A A0 02 2.A A1515A A0 0A A1515A A0 0A A1515A A0 0A A1515A A0 0D D7 7D

44、D0 0A A1414A A0 02 262512RAM62512RAMWRWROEOEMRDCMRDCMWTCMWTC62512RAM62512RAMWRWROEOE62512RAM62512RAMWRWROEOE62512RAM62512RAMWRWROEOE28C256E28C256E PROMPROMWRWROEOE28C256E28C256E PROMPROMWRWROEOE.CSCS.CSCS.BHEBHEA A0 0.Y Y0 0G GY YG G2B2B1 1Y YG G2A2A2 2Y Y3 3Y Y4 4C CY Y5 5B BY Y6 6A AY Y7 774LS1387

45、4LS13811.11.A A1919A A1818A A1717A A1616.1VccVcc.A A1919A A1818A A1717&.1I/O 接口的功能:对输入/输出数据进行缓冲和锁存、对信号的形式和数据的格式进行变换、对 I/O 端口进行寻址、提供联络信号等。2CPU 与外设之间的数据传输方式有程序控制方式 无条件传输方式和程序查询方式 、中断方式、DMA、通道控制和 I/O 处理器。无条件传输方式:CPU 不需要了解外设状态,直接与外设传输数据,适用于按钮开关、发光二极管等简单外设与 CPU 的数据传送过程。程序查询方式:CPU 与外设传输数据之前,先检查外设状态,如果外设处于

46、“准备好”状态输入设备或“空闲”状态输出设备 ,才可以传输数据。中断方式:外设在数据准备好之后再通知CPU,这样, CPU 在没接到外设通知前只管做自己的事情,只有接到通知时才执行与外设的数据传输工作。DMA:直接存储器存取方式,将外设与内存间建立起直接的通道,CPU 不再直接参加外设与内存间的数据传输,而是在系统需要进行DMA 传输时,将CPU 对地址总线、数据总线及控制总线的管理权交由 DMA 控制器进行控制。38.CSCS1D D7 7D D0 0.通道控制和 I/O处理器:主 CPU 启动通道工作,通道控制器即从主存或通道存储器中取出相应的程序,控制数据的输入/输出。3每个 I/O 接

47、口内部一般由 3 类寄存器组成,CPU 与外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为I/O 端口。包括数据端口、状态端口、控制端口。端口寻址方式有存储器映像的I/O 寻址、I/O 映像的 I/O 寻址。80X86 系统采用后者。4M/:低电平,ALE:高电平, :低电平;输入时 DT/为低电平,为低电平有效;输出时 DT/为高电平,为低电平有效。5在外设接口电路中,经常需要对传输过程中的信息进行锁存或缓冲,所以需要锁存器和缓冲器。6DATASEGMENT AT 2000HORG2000HBUFDB100DUP(?)DATAENDSCODESEGMENTASSUME

48、 CS:CODE,DS:DATAMAINPROCFARSTART: MOV AX,DATAMOV DS,AXLEA SI,BUFMOV CX,100INPUT: MOV DX,0FFE2HIN AL,DX;读状态端口39TEST AL,01HJZ INPUT;测输入状态 D0位;未“准备好”转 INPUTMOV DX,0FFE0H ;读取输入字符IN AL,DX;输入字符存缓冲区MOV SI,ALINC SILOOP INPUTMOV AH,4CHINT 21HCODEENDSEND START7;返回 DOS74LS37374LS373LEDLED0 0D D0 0D D7 7Y YIOWI

49、OW1D D0 0D D7 7Q Q0 0Q Q1 1LEDLED1 1.G GOEOEQ Q7 7.LEDLED7 7CODESEGMENTASSUME CS:CODEMAINPROCFARSTART: PUSHDSMOVAX,0PUSHAXMOVDX,200H;设 I/O 端口为 200H40AGAIN: MOVAH,1;读键盘缓冲区字符INT16HCMPAL,1BHJZEXITMOVAL,0FFHOUTDX,ALMOVBX,5CALLDELAYNOTALMOVBX,2CALLDELAYJMPAGAINEXIT:RETMAINENDPDELAYPROC NEARPUSHCXWAIT0: M

50、OVCX,2801WAIT1: LOOPWAIT1DECBXJNZWAIT0POPCXRETDELAY ENDPCODEENDSENDSTART;假设为“Esc”键,则退出;灯全亮;输出控制 LED;向子程序传递参数,实现 50ms 软延时;子程序 DELAY实现 10ms 延时;灯全灭;向子程序传递参数,实现 20ms 软延时418CODESEGMENTASSUME CS:CODEMAINPROCFARSTART: PUSHDSMOVAX,0PUSHAXMOVDX,200HMOVCL,01HAGAIN: MOVAH,1INT16HCMPAL,1BHJZEXITMOVAL,CLOUTDX,AL

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁