ENDM 宏调用: DISP ‘*’ 宏展开: MOV DL,‘*’ MOV AH,02H INT 21H
44.宏指令STORE定义如下: STORE MACRO X, N MOV X+I,I I=I+1
IF I - N STORE X,N ENDIF ENDM 试展开下列调用: I=0
STORE TAB,7 解答:I=0 store tab ,7 mov tab,0 I=1
store tab,7 +mov tab+1,1 I=2
store tab,7 + mov tab+2,2 I=3
store tab+3,3 + mov tab+3,3 I=4
store tab,7 + mov tab+4,4 I=5
store tab,5 + mov tab+5,5 I=6
store tab,7 + mov tab+6,6
45.试编写非递归的宏指令,使其完成的工作与44题的STORE相同。 解答:store macro k mov tab+k,k endm
hongdiaoyong i=o rept 7 store %i i=i+1 endm
46.试编写一段程序完成以下功能,如给定名为X的字符串长度大于5时,下列指令将汇编10次。
ADD AX, AX
解答:rept macro x,r mov ax,oper1 if x gt 5 r=0
rept 10 r=r+1
add ax ,ax endm
47.定义宏指令FINSUM:比较两个数X和Y,若X>Y则执行SUM←X+2*Y;否则执行SUM←2*X+Y
解答: finsum macro x,y,sum; mov bx ,x mov al,2 if x gt y mul y add bx,ax mov dx, sum mov dx, bx if x lt y mov bx, x mul x
mov dx,sum mov dx,bx endmaaa
48.试编写一段程序完成以下功能:如变元X=’VT55’,则汇编MOV TERMINAL,0;否则汇编 MOV TERMINAL,1。
解答:pre macro x,arg,terminal mov arg ifidn x,arg mov terminal,0 ifdif x,arg mov terminal ,1 endm
49.对于DOS功能调用,所有的功能调用都需要在AH寄存器中存放功能码,而其中有一些功能需要在DX中放一个值。试定义宏指令DOS21,要求只有在程序中定义了缓冲区时,汇编为:
MOV AH,DOSFUNC
MOV DX,OFFSET BUFF INT 21H
否则,无MOV DX,OFFSET BUFF指令。并展开以下宏调用: DOS21 01
DOS21 0AH, IPFIELD
解答: DOS21 MACRO DOSFUNC,BUFF MOV AH,DOSFUNC IF B〈BUFF〉 INT 21H ELSE
MOV DX,OFFSET BUFF 宏展开: DOS21 01 MOV AH,0H
INT 21H
DOS21 0AH,IPFIEID MOV AH,0AH MOV DX,IPFIELD INT 21H
50.编写一段程序,使汇编程序根据SIGN中的内容分别产生不同的指令。
如果(SIGN)=0,则用字节变量DIVD中的无符号数除以字节变量SCALE;如果(SIGN)=1,则用字节变量DIVD中的带符号数除以字节变量SCALE,结果都存放在字节变量RESULT中。
解答:MOV AL,DIVD IFE SIGN
MOV AH,0 DIV SCALE ELSE CBW
IDIV SCALE ENDIF
MOV RESULT,AL
第六章输入输出处理方法习题
1.如果8251A设定为异步通信方式,发送器时钟输入端和接收器时钟输入端都连接到频率为19.2KHZ的输入信号,波特率因子为16,则波特率为( )。 (A)1200 (B)2400 (C)9600 (D)19200 答: A
2.试分析,在数据通信中,比特率与波特率分别代表的含义? 答:比特率指数据通信中信号频率每秒钟变化的次数;
波特率指数据通信过程中每秒种传送的位数(bit/s),故 1波特=1位/秒。
3.8255A工作在方式1时,端口A和端口B作为数据输入/输出使用,而端口C的各位分别作为端口A和端口B的控制信息和状态信息。其中作为端口A和端口B的中断请求信号的分别是端口C的()。
(A)PC4和PC2 (B)PC5和PC1 (C)PC6和PC7 (D)PC3和PC0 答: D
4.在DMA传送过程中完成数据传送功能是由( )。 (A) CPU执行从存储器读出的指令 (B) CPU直接控制外部设备与存储器 (C) DMAC执行从存储器读出的指令 (D) 外部设备中的控制部件直接控制 (E) DMAC的硬件直接控制 答: E
5.DAC0832是一个分辨率为(1),输入具有(2)功能的D/A转换器。 (A)8位 (B)10位 (C)12位 (D) 单缓冲 (E) 双缓冲 (F) 无缓冲 答: A E
6.在IBM PC/XT微机中8253-5定时器/计数器的三个通道的工作方式分别为:通道0工 作在(1);通道1工作在(2);通道2工作在(3)。
(A)方式0 (B)方式1 (C)方式2 (D)方式3 (E)方式4 (F)方式5 答: D C D
7.试分析:8251A能不能同时实现发送数据和接受数据的功能?
答:8251A是可编程控制的串行接口芯片,对其方式字、命令字及状态字初始化后,规定其通信方工(同步/异步)及数据格式等,命令字来控制发/收,状态字控制何时可以收/发。其实现的是半双工通信方式,不能同时实现发送和接受数据的功能。
8.当D/A转换器与CPU相连时,如果CPU的数据总线的位数小于D/A转换器的位数,这时需要采用什么结构? 答:当CPU的数据总线的位数小于D/A转换器的位数时,即使采用的D/A转换器内部带有数据缓冲器,也要采用外加三态缓冲器或数据寄存器与CPU相联的结构,并且是两级缓冲,以消除由于两次传送数据而产生的尖峰。
9.ADC0809与CPU相连接时,其模拟输入通道的地址由CPU提供。为了确保它对输入信号的可靠转换,需要在它们之间加上什么东西?
答:为了确保对输入信号的可靠转换,需在ADC0809 的ADDA~ADDC和CPU之间加一级地址锁存器或三态锁存器。
10.试分析:在异步串行通信工作状态下,通信双方是否需要同步?
答:需要同步。异步串行传送是指传送的每一个字符是随机出现在数据流中的,即是把每一个字符看作一个独立的传送单位,字符之间的间隔是随机的、任意的。但是,在一个字符内部的各个二进制位是同步传送的。收发双方对字符的同步是通过在字符格式中设置起始位和停止位来实现的
11.简述8086CPU对中断的响应和处理过程。
答:8086对各类中断的响应不完全相同,主要区别在于如何获得中断类型码。
A. 可屏蔽中断的响应过程。首先必须满足中断允许标志IF置1,当没有内部中断,非屏
蔽中断(NMI=0)和总线请求(HOLD=0)时,外设向中断控制器8259A发出中断请求,
相关推荐: