S6 DB ? S7 DB ? S8 DB ? S9 DB ? S10 DB ? DSEG ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DSEG START: MOV AX,DSEG MOV DS,AX LEA DX,STRING MOV AH,10 INT 21H LEA DI,CJ LEA SI,STRING+2 MOV BH,0 MOV AL,0 AGAIN: MOV BL,[SI] CMP BL,',' JZ NEXT CMP BL,0DH JZ NEXT SUB BL,30H MOV CL,10 MUL CL ADD AL,BL INC SI JMP AGAIN NEXT: MOV [DI],AL INC DI MOV AL,0 INC BH INC SI CMP BL,0DH JNZ AGAIN TJ: LEA DI,CJ TJ1: MOV AL,[DI] CMP AL,100 JZ ADDS10
26
CMP AL,90 JAE ADDS9 CMP AL,80 JAE ADDS8 CMP AL,70 JAE ADDS7 CMP AL,60 JAE ADDS6 ADDS10: INC S10 JMP TJNEXT ADDS9: INC S9 JMP TJNEXT ADDS8: INC S8 JMP TJNEXT ADDS7: INC S7 JMP TJNEXT ADDS6: INC S6 TJNEXT: INC DI DEC BH JNZ TJ1 EXIT: MOV AH,4CH INT 21H CODE ENDS END START
24
19. 答: 20. 答: 21. 答: 22. 答: MOV BX,X CMP BX,Y JG SET1 JZ SET0 MOV AL,-1 JMP EXIT
SET1: MOV AL,1 JMP EXIT
27
SET0: MOV AL,0 EXIT: … LEA SI,STR1 LEA DI,STR2 MOV CX,COUNT
NEXT: MOV BX,[SI] CMP BX,[DI] JNZ NOEQ INC SI INC DI LOOP NEXT MOV AX,0FFFFH JMP EXIT
NOEQ: MOV AX,SI EXIT: …
DATA SEGMENT
LINTAB DW 12,-5,33,21,9 COUNT DW ($-LINTAB)/2 KEYBUF DW 21 ADDR DW ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA DI,LINTAB MOV CX,COUNT MOV AX,KEYBUF REPNZ SCASW JNZ SET1 SUB DI,2 MOV ADDR,DI JMP EXIT
SET1: MOV ADDR,0FFFFH EXIT: MOV AX,4C00H INT 21H CODE ENDS END START DATA SEGMENT BUF DB 100 COUNT DB ? DB 100 DUP(?)
MESS1 DB 'NUMBER:$'
28
MESS2 DB 'LETTER:$' MESS3 DB 'LENGTH:$' DATA ENDS MOV DL,0AH MOV AH,2
INT 21H ;换行显示 MOV AH,9 LEA DX,MESS3 INT 21H 25
23. 答: DATA SEGMENT
STRING DB 'HELL MY MASM!' COUNT=$-STRING DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV BX,0 26 27
第6章 习题答案
略。
第7章 习题答案
1.半导体存储器的分类如下:
2.什么是RAM和ROM?RAM和ROM各有什么特点?2分
随机存取存储器RAM,又称为读/写存储器,其每个存储单元的内容可以随时按需要进行读/写操作。RAM主要用来保存各种输入/输出数据、中间结果、与外存交换的信息,也可作堆栈使用。而ROM的内容只能读出,不能写入或改写,一般用来存放固定的程序和数据。
3.半导体存储器的主要技术指标:存储容量、读/写速度(存取时间和存储周期)、可靠性。 4.8086CPU和存储器连接时要考虑哪些方面的因素?(2分)
8086CPU和存储器连接时要考虑:存储芯片数,AB、DB和一些控制信号的连接,奇、偶片的设置,地址译码方式等。
5.常用的存储器地址译码方式有哪些?(2分)
常用的存储器地址译码方式有:全地址译码、部分地址译码、线选法。 6.在8086系统中,若用1024*1位的RAM芯片组成16K*8位的存储器,需要多少芯片?系统地址
29
总线中有多少位参与片内寻址?多少位用作芯片选择信号?(2分)
需要(16k?8)/(1024?1)=128片,CPU地址线中片内寻址10位,片外4位。 7.
第8章 习题答案
1.简述I/O 接口的功能。(2分)
I/O 接口的功能:对输入/输出数据进行缓冲和锁存、对信号的形式和数据的格式进行变 换、对I/O 端口进行寻址、提供联络信号等。
2.CPU与外设之间的数据传输方式有哪些?简要说明各自的含义。(2分)
CPU与外设之间的数据传输方式有程序控制方式(无条件传输方式和程序查询方式)、中断方式、DMA、通道控制和I/O处理器。
无条件传输方式:CPU不需要了解外设状态,直接与外设传输数据,适用于按钮开关、发光二极管等简单外设与CPU的数据传送过程。
程序查询方式:CPU与外设传输数据之前,先检查外设状态,如果外设处于“准备好”状态(输入设备)或“空闲”状态(输出设备),才可以传输数据。
中断方式:外设在数据准备好之后再通知CPU,这样,CPU在没接到外设通知前只管做自己的事情,只有接到通知时才执行与外设的数据传输工作。
DMA:直接存储器存取方式,将外设与内存间建立起直接的通道,CPU不再直接参加外设与内存间的数据传输,而是在系统需要进行DMA传输时,将CPU对地址总线、数据总线及控制总线的管理权交由DMA控制器进行控制。
通道控制和I/O处理器:主CPU启动通道工作,通道控制器即从主存或通道存储器中取出相应的程序,控制数据的输入/输出。
3.什么是端口?通常有哪几类端口?I/O端口的寻址方式有哪两种?在80X86系统中,采用哪一种?(2分)
每个I/O接口内部一般由3类寄存器组成,CPU与外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为I/O端口。包括数据端口、状态端口、控制端口。端口寻址方式有存储器映像的I/O寻址、I/O映像的I/O寻址。80X86系统采用后者。
4.M/:低电平,ALE:高电平,:低电平;输入时DT/为低电平,为低电平有效;输出时DT/为高电平,为低电平有效。
5.在输入/输出电路中,为什么常常要使用锁存器和缓冲器?(2分) 在外设接口电路中,经常需要对传输过程中的信息进行锁存或缓冲,所以需要锁存器和缓冲器。 6.
DATA SEGMENT AT 2000H ORG 2000H
BUF DB 100 DUP(?) DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA MAIN PROC FAR
START: MOV AX,DATA
30