《微机原理及应用》期末自测题 答案版(DOC)
《微机原理及应用》期末自测题
一、基本概念与术语
1、8086是(16 )位计算机。8086地址线有(20 )条,可直接寻址的空间最大为(1M )。
2、总线周期是指(进行一次总线操作的时间)。基本总线周期有(4 )T状态。Tw状态是指(等待周期)。
3、8086CPU允许的I/O地址线最多可达(16 )条,最大寻址I/O空间为(64K )。
4、8086CPU由(总线接口部件BIU,执行部件EU )两部分组成,其功能为(总线接口部件BIU,负责控制存储器与I/O端口的信息读写,包括指令获取与排队、操作数存取等。执行部件EU负责从指令队列中取出指令,完成指令译码与指令的执行行。
)。其中8086CPU中标志寄存器的作用是(记录指令运行的状态标志和控制标志),指令队列的作用是(完成指令的获取和排队),20位地址加法器的作用是(将执行单元提供的16位非重定位地址重定位为20位的存储器物理地址,用于存储器接口访问总线上实际的物理存储器)。代码段物理地址由CPU的(CS,IP )两个寄存器确定。堆栈段物理地址由CPU的(SS,SP )两个寄存器确定。
5、8086中断源有(系统外部中断,内部中断两)个。8086中断服务程序入口地址由( 中断向量表)组成。中断类型号为20H,其中断向量为(80H )。
6、I/O指令IN/OUT,传送数据的寄存器为(AL,AX ),间接寻址时使用寄存器(DX ),其中
IN AL,DX的含义是(将DX中的数据写入到AL中)。OUT 60H,AL的含义是(将AL读出到地址为60H的端口中)。
7、一片8259A可以管理(8 )级中断;3片8259A可以管理(16 )级中断。
8、硬件中断是(外部引发,随机的,执行总线周期,中断类型码由中断控制器提供),软件中断是(内部引发,确定的,不执行总线周期,中断类型确定)软件中断优先级与硬件中断优先级相比,(软件中断)的级别高。
9、在中断服务程序结束前,为正确返回,必须设置一条指令(IRET )。在子程序调用结束前,为正确返回,必须设置一条指令(RET )。
10、若中断控制器8259的中断请求寄存器IRR状态为10100000B,说明(IR5,IR7引脚上有中断请求)。ISR状态为10100000B说明(出现了中断嵌套)。
11、可编程定时器8253的地址有(16 )个。共有(3 )独立定时通道。工作方式有( 6 )个。
12、并行接口8255有( 4 )个数据端口,有( 3 )种工作方式。
13、假设8253的端口地址为40H~43H,那么控制端口地址为(43H ),通道0、1、2的端口地址为(40H,41H,42H )。
14、假设8255的端口地址为330H~333H,那么控制端口地址为(333H ),端口A、
B、C的地址为(330H,331H,332H )
15、定时器8253的门控信号GATE作用是(门控输入端,用于外部控制计数器的启动或停止计数的操作),CLK端的作用是(计数器的时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号),OUT端作用是(定时器的输出端)。
16、初始化定时器8253需要先写(控制字),后写(定时初值)。
17、伪指令的作用是(指出汇编程序应如何对源程序进行汇编,如何定义变量,分配存储单元,以及指示程序的开始和结束),(不)产生机器代码。
二、简单应用与简答题
1、简述微型计算机的组成。
微型计算机是由微处理器、存储器、输入/输出接口电路和系统总线构成的裸机系统。
2、总线分为哪几种类型?微型计算机采用总线结构有什么优点?
分为地址总线,数据总线与控制总线三类,又称三总线。
微型计算机的三总线结构是一个独特的结构。采用总线结构,系统中各功能部件之间的相互关系,变成了各功能部件面向总线的单一关系。一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能得到扩展。
3、8086 CPU在内部结构上由哪几部分组成?其功能是什么?
8086的内部结构分成两部分。总线接口部件BIU,负责控制存储器与I/O端口的信息读写,包括指令获取与排队、操作数存取等。执行部件EU负责从指令队列中取出指令,完成指令译码与指令的执行行。
4、8086的总线接口部件由那几部分组成? 其功能是什么?
8086的总线接口部件主要由下面几部分组成:4个段寄存器CS/DS/ES/SS,用于保存各段地址;一个16位的指令指针寄存器IP,用于保存当前指令的偏移地址;一个20位地址加法器,用于形成20位物理地址;指令流字节队列,用于保存指令;存储器接口,用于内总线与外总线的连接。
5、8086的执行单元(部件)由那几部分组成?有什么功能?
8086的执行单元部件主要由下面几部分组成:控制器、算数逻辑单元、标志寄存器、通用寄存器组。
(1)控制器,从指令流顺序取指令、进行指令译码,完成指令的执行等。
(2)算数逻辑单元ALU,根据控制器完成8/16位二进制算数与逻辑运算。
(3)标志寄存器,使用9位,标志分两类。其中状态标志6位,存放算数逻辑单元ALU 运算结果特征;控制标志3位,控制8086的3种特定操作。
(4)通用寄存器组,用于暂存数据或指针的寄存器阵列。
6、简述8086CPU的流水线思想,与传统计算机有何不同。
在8086CPU中,指令的提取与执行分别由总线接口部件BIU与执行部件EU完成,两个单元重叠并行工作,这种机制称为流水线,这种工作方式有力的提高了CPU的工作效率。传统的计算机一般按照取指令、指令译码与执行指令的串行步骤工作。
7、8086和8088是怎样解决地址线和数据线的复用问题的? ALE信号何时处于有效电平?
8086/8088采用时间分隔技术与地址锁存技术,通过地址锁存允许信号ALE锁存CPU 送出的地址,有效解决地址线和数据线的复用问题。
ALE在T1状态有效,将CPU送出的20位地址锁存。
8、计算机对I/O端口编址时通常采用哪两种方法?在8086/8088系统中,用哪种方法对I/O 端口进行编址?
对端口编址的两种方法。计算机对内存和I/O端口统一编址;计算机对内存和I/O端口
分别进行编址。
在8086/8088系统中用计算机对内存和I/O端口独立编址。
9、一般的IO接口电路安排有哪三类寄存器?它们各自的作用是什么?
(1)安排数据寄存器、状态寄存器、控制寄存器。
(2)数据寄存器:存放CPU与外设之间传送的数据信息。状态寄存器: 存放当前外设所处的工作状态。控制寄存器: 存放CPU通过接口向外设传送控制信息。
10 简述CPU与外设进行数据交换的几种常用方式与特点。
CPU与外设之间的数据传输有以下三种方式:程序方式、中断方式、DMA方式。(1)程序方式又分为无条件传送方式和条件传送方式两种方式,接口简单。无条件传送方式用于简单外设,如LED显示器。条件传送方式用于外设较少、需要联络信号的情形。(2)中断传送方式需要专门的中断控制电路。CPU利用率高,速度快,用于外设较多的实时系统。
(3)DMA方式需要专用硬件电路。外设直接和存储器进行数据传送,效率高,适合大量、快速数据传送,例如硬盘读写等。
11、简述条件传送方式的工作过程,主要适用的场合。
条件传送数据有三个环节:(1)CPU从接口中读取状态字。(2)CPU检测状态字的对应位是否满足“就绪”条件,如不满足,则回到前一步读取状态字。(3)如状态字表明外设已处于就绪状态,则传送数据。
主要用于需要联络信号(如选通信号)的外设较少的系统。
12、8086 CPU响应中断的条件?8086 CPU响应中断后自动完成的任务是什么?
(1)有中断源发出的中断请求信号,并保存在中断请求触发器中,直至CPU响应此中断请求之后才清除。(2)开放总中断。(3)在现行指令结束后响应中断。
关中断,断点保护,形成中断入口地址。即获得中断服务程序的入口地址,从而进入中断服务程序。
13、软件中断有哪些特点?硬件中断有那些特点?
软件中断是由CPU内部事件引起的中断,是确定的;与硬件无关,不执行中断响应周期;除单步中断外,软件中断(内部中断)不可屏蔽;优先级高于硬件中断(外部中断)。硬件中断由外部事件引起,是随机的,需要执行总线周期,中断类型码由中断控制器提供。
14、什么是中断向量?它放在哪里?对应于类型号1CH的中断向量在哪里?如1CH中断程序从5110H :2030H开始,则中断向量应怎样存放?
中断向量是中断处理子程序的入口地址,它放在中断向量表中。
由1ch*4=70H知中断向量存放在0000:0070处。
由于中断处理入口地址为5110H:2030H,所以2030H应放在0070H,0071H两个存储单元,5110H应放在0072H、0073H这2个单元。
15、简述定时器/计数器芯片8253的主要功能。说明OUT、CLOCK与GATE信号的作用。
(1)具有3个独立的16位定时/计时器,采用二进制计数时最大计数范围为0~65535,采用BCD码计数时,最大计数值为0~9999(2)每个定时/计数器都有自己的时钟输入CLK,
定时的输出OUT和门控信号GATE(3)每个定时/计数器均可以按二进制或BCD码计数,计数频率可达2MHz(4)每个定时/计数器都有6种工作方式,通过编程设置,计数器可做计数用,也可做定时用(5)所有输入和输出电平都与TTL兼容
OUT是计数器的输出端,用于计数信号输出,CLOCK是计数器的时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号,GA TE是门控输入端,用于外部控制计数器的启动或停止计数的操作
16、8253内部有几个独立通道?8253有几种工作方式?初始化8253的步骤是什么?若8253端口地址为200H-203H,对应的端口是哪个?
8253内部有3个独立通道,8253有,6种工作方式,初始化8253的步骤是:选择计数器,确定计数器数据的读写格式,确定计数器的工作方式,确定计数器计数的数制,写入计数初值,若8253端口地址为200H-203H,计数器0,1,2和控制字寄存器端口的地址分别为200H,201H,202H和203H
17、并行接口8255有几个数据端口?若端口地址为300H-303H,对应的端口是哪个?怎样初始化8255?
并行接口8255有4个数据端口,若端口地址为300H-303H,对应的端口是,:端口A、B、C和控制端口的地址分别为300H,301H,302H和303H
18、假设8255A的端口A工作于方式0,外设需要提供两个联络信号,一个为输出选通,一个为外设就绪信号输入,试选择端口并说明理由。
若8255A的端口A工作于方式0输出,外设需要提供两个联络信号,把端口C的高4位某位,例如PC7规定为输出口,用来输出选通信号;而把端口C的低4位规定为输入口,例如用PC0用来读入外设的状态。就是这样,利用端口C来配合端口A和端口B的输入/输出操作。
19、中断控制器8259的主要功能?简述8259的工作过程。
中断控制器8259具有8级优先权管理,可用9片扩展为64级中断系统,接受中断请求,提供中断类型号,具有屏蔽与开放中断的功能,可编程选择不同工作方式
8259的工作过程:
(1). 有请求输入时,将IRR相应位置位;
(2). 经IMR屏蔽电路处理后(IRR与IMR相与),送PR;
(3). PR检测出最高的中断请求位,并经嵌套处理考虑是否发送INT;
(4). 若可发INT信号,则控制逻辑将INT信号送给CPU的INTR引脚
(6). 若CPU处在开中断,则在当前指令完成后,发两个INTA信号;
(7). 8259A接到第一个INTA信号后,使ISR位置位,IRR相应位复位;
(8). CPU启动另一个响应周期,输出第二个INTA脉冲,8259A
(9). 向数据总线送出中断类型码;同时,CPU取出此向量乘以4,
(10). 得到中断服务程序的入口地址;
(11). 中断响应周期完成,CPU执行中断服务程序,8259A工作
(12).在自动结束AEOI或普通结束EOI模式下,使ISR清0。
三、编程应用题
1、编程计算((X+Y)*10)+Z)/X,X、Y、Z都是16位无符号数,结果存在RESULT开始的
单元。
DA TA SEGMENT
RESULT DW 2 DUP(?)
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA
START: MOV AX,DATA
MOV DS,AX ;初始化
MOV BX,0
MOV AX,X
ADD AX,Y
JNC S0
MOV BX,1
S0: MOV DX,0
MOV CX,10
MUL CX
ADD DX,BX
ADD AX,Z
ADC DX,0
MOV BX,X
DIV BX
LEA SI,RESULT
MOV [SI],AX
ADD SI,2
MOV [SI],DX
MOV AH,4CH
INT 21H
CODE ENDS
END START
2、将BUF1开始的100字节传送到BUF2开始的单元,然后从中检索字符“#”,并将此单元换成空格字符。
DA TA SEGMENT
BUF2 DB 100 DUP(?)
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DA TA
MOV DS,AX ;初始化
MOV ES,AX
LEA SI,BUF1
LEA DI,BUF2
MOV CX,100
CLD
REP MOVSB
MOV CX,100
LEA BUF2
S : MOV AL,’#’
COM AL,[DI]
JNZ COUN
MOV AL,’’
MOV [DI],AL
COUN: INC DI
LOOP S
MOV AH,4CH
INT 21H
CODE ENDS
END START
3、编写一段程序,比较两个5字节的字符串OLDS和NEWS,若相同,在RESULT置0,否则置0FFH。
DA TA SEGMENT
OLDS DB 1,2,3,4,5
NEWS DB 1,2,3,4,'A'
N = $-NEWS
RESULT DB 0
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DA TA
MOV DS,AX ;初始化
MOV SI,OFFSET OLDS
MOV DI,OFFSET NEWS
MOV CX,N
DON: MOV AL, [SI]
CMP AL, [DI]
JNZ NOEQU ;串不相等转
INC SI
INC DI
LOOP DON
MOV AL,0
JMP OUTPUT
NOEQU: MOV AL,0FFH
OUTPUT: MOV RESULT,AL
STOP: JMP STOP ;程序陷阱
CODE ENDS
END START
4、累加数组中的元素,将和存于SUM开始单元,数据段定义如下
DA TA SEGMENT
ARRAY DW 10,10,12,4,5,6,7,8,9,10
COUNT DW ($-ARRAY)/2
SUM DW ?,?
DA TA ENDS
ASSUME CS:CODE,DS:DA TA
START: MOV AX,DA TA
MOV DS,AX
MOV AX,COUNT
MOV BX,2
MUL BX
MOV CX,AX
MOV AX,0
LEA S I,ARRAY
S: ADD AX,[SI]
ADD SI,2
LOOP S
LEA S I,SUM
MOV [SI],AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
5、编写程序完成求1+2+3+……N的累加和,直到累加和超过1000为止。统计被累加的自然数的个数送CN单元,累加和送SUM。
DA TA SEGMENT
CN DW ?
SUM DW ?
DA TA ENDS
ASSUME CS:CODE,DS:DA TA
START: MOV AX,DA TA
MOV DS,AX
MOV CX,0
MOV AX,0
MOV BX,1
S: ADD AX,BX
INC CX
CMP AX,1000
JA OK
INC BX
JMP S
OK: LEA SI,SUM
MOV [SI],AX
LEA D I,CN
MOV [DI],CX
MOV AH,4CH
INT 21H
CODE ENDS
END START
6、从给定串中寻找最大值,并放到MAX单元,元素放在BUFFER开始的字节单元中。DA TA SEGMENT
BUFFER DB 10,32,56,11,90,56,89,21
N EQU $-BUFFER
MAX DB ?
DA TA ENDS
ASSUME CS:CODE,DS:DA TA
START: MOV AX,DATA
MOV DS,AX
MOV CX,N-1
LEA SI,BUFFER
S: MOV AL,[SI]
CMP AL,[SI+1]
JNA S1
XCHG [SI+1],AL
XCHG [SI],AL
S1: INC SI
LOOP S
MOV AL,[SI]
LEA SI,MAX
MOV SI,AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
7、把BUF表中的字节元素按值的大小升序排列。数据段定义如下:
BUF DB 10,32,56,11,90,56,89,21
N = $-BUF
DA TA SEGMENT
BUF DB 10,32,56,11,90,56,89,21
N EQU $-BUF
DA TA ENDS
ASSUME CS:CODE,DS:DA TA
START: MOV AX,DATA
MOV DS,AX
MOV DX,N-1
S1: MOV BL,0
MOV CXDX
LEA SI,BUF
S2: MOV AL,[SI]
CMP AL,[SI+1]
JNA NO
XCHG [SI+1],AL
XCHG [SI],AL
MOV BL,0FFH
NO: INC SI
LOOP S2
DEC DX
CMP DX,0
JNE S1
MOV AH,4CH
INT 21H
CODE ENDS
END START
8、类型号为20H的中断服务程序入口符号地址为INT-5,试写出中断向量的装入程序片断。CLI
PUSH DS
PUSH AX
XOR AX,AX
MOV DS,AX
MOV AX,OFFSET INT-5
MOV WORD PTR [080H],AX
MOV AX,SEG INT-5
MOV WORD PTR [082H],AX
POP AX
POP DS
STI
9、设一个8253的计数器0产生周期为20ms的定时信号,计数器1产生周期为100ms的定时信号。设外部时钟频率为f=2MHZ,端口地址为330H~333H。试对它进行初始化编程。
MOV AL,00110100B
MOV DX, 333H
OUT DX,AL
MOV AX,40000
MOV DX, 330H
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV AL,01110100B
MOV DX, 333H
OUT DX,AL
MOV AX,5
MOV DX, 331H
OUT DX,AL
MOV AL,AH
OUT DX,AL
10、已知某8253占用I/O空间地址为40H~43H,设定时器0、定时器1工作于方式3,外部提供一个时钟,频率f=2MHZ。要求定时器1连续产生5ms的定时信号,定时器0连续产生5秒的定时信号。
MOV AL,00110110B
OUT 43H,AL
MOV AX,1000
OUT 40H,AL
MOV AL,AH
OUT 40H,AL
MOV AL,01110110B
OUT 43H,AL
MOV AX,5000
OUT 41HAL
MOV AL,AH
OUT 41H,AL
11、用8255A控制三个发光二极管依秩序循环显示。假设开关闭合时,点亮发光二极管,开关断开时息灭二极管。(1)画出原理图,并说明工作原理;(2)选择8255工作方式;(3)编写8255初始化程序与控制程序。
见课本P226
12、8255连接一组开关与一组LED显示器,如图所示。开关状态用LED显示,若闭合,则点亮。8255端口地址为310H~313H。(1)选择8255工作方式;编写8255初始化程序与控制程序。
见课本P233
四、常用指令与读程序
1、8086 CPU执行如下指令后的结果,以及标志CF、ZF的值。
MOV AL, 80H
SUB AL, 10H ;(AL)=70H
ADD AL, 89H ;(AL)=F9H,CF=0,ZF=0
2、CPU执行如下指令后的结果。
MOV AX,1234H
MOV BX,5678H
PUSH AX
POP CX
AX=1234H, BX=5678H, CX=1234H
写出执行下列指令结果.
MOV AX, TABLE
MOV BX, OFFSET TABLE
MOV CX, N
MOV DX, LENGTH ZER
AX=0 BX=1000H CX=8 DX=24
3、单独执行下列指令的结果
MOV AL,10110101B AL=10110101B
AND AL,00011111B AL=00010101B
OR AL,11000000B AL=11010101B
XOR AL,00001111B AL=11011010B
4、单独执行下列指令的结果
假设(AL)=10101111B,CF=0,CL=4,写出分别执行下列指令后的结果以及标志位CF、ZF的值。
SHL AL,CL AL=11110000B CF=0 ZF=0
SHR AL,CL AL=00001010B CF=1 ZF=0
ROL AL,CL AL=11111010B CF=0 ZF=0
6、读程序,写出结果。
MOV AL,5BH
TEST AL,80H
JZ LP
MOV BL,1
JMP STOP
LP:MOV BL,0
HLT
执行上述程序段后AL=5BH BL=0
五、程序设计与完善
1、读程序,写出结果。
DA TA SEGMENT ;数据段定义
BUF DB 8,2,3,4 ;定义一段字节存储空间,内容为8,2,3,4
COUNT EQU $-BUF ;计算BUF的字节长度
DA TA ENDS ;数据段定义
CODE SEGMENT ;代码段定义
ASSUME CS:CODE,DS:DATA
START: MOV AX,DA TA ;程序执行起始点
MOV DS,AX ;将数据段地址寄存器指向用户数据段
LEA SI,BUF ;BUF偏移地址指向SI
MOV CX,COUNT ;设定循环次数
CALL ADDONE ;填空,调用子程序ADDONE
HLT
ADDONE PROC NEAR ;子程序代码段定义
ADD BYTE PTR[SI],1 ;SI中数据加1,送回SI
INC SI ;SI地址加1
LOOP DON ;循环判断
RET ;返回主程序
ADDONE ENDP ;子程序代码段定义
CODE ENDS ;代码段定义
END START ;程序结束
(1)执行上述程序段后BUF 存储区的内容为:9,3,4,5 。
(2)给程序加上完整段定义。
(3)给程序加上注释,说该程序功能。
程序功能是将BUF中数据分别加1,结果送回原存储空间
2、读程序并完善。
DA TA SEGMENT ;数据段定义
AR1 DB 1,2,3,4,5,7 ;定义一段字节存储空间,内容为1,2,3,4,5,7 N = $-AR1 ;计算AR1的字节长度
AR2 DB N DUP(0) ;定义N字节存储空间,内容为0,0,0,0,0,0 DATA ENDS ;数据段定义
CODE SEGMENT ;代码段定义
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA ;程序执行起始点
MOV DS,AX ;将数据段地址寄存器指向用户数据段
MOV CX,N ;设定循环次数
MOV SI,offset AR1 ;取AR1偏移地址送SI寄存器
MOV DI,offset AR2 ;取AR2偏移地址送DI寄存器
again: MOV AL,[SI] ;将SI中数据送入AL
MOV [DI],AL ;AL内容送数据到DI所指单元
INC DI ;DI所指地址加1
INC SI ;SI所指地址加1
LOOP again ;循环again
MOV AH, 4CH ;返回DOS
INT 21H
CODE ENDS ;代码段定义
END START ;程序结束
1)程序执行前,AR2单元内容为:0,0,0,0,0,0
2)程序执行后,AR2单元内容为: 1,2,3,4,5,7
3)给程序加上注释,说明程序功能;
将AR1内存单元中数据复制到偏移地址AR2中
4)给程序加上完整段定义。
3、
下面是程序主要片段:
DA TA SEGMENT ;数据段定义
BUF DB 0, 1,2,3 ;定义一段字节存储空间,内容为0,1,2,3
COUNT = $- BUF ;计算BUF的字节长度
ASCII DB 0, 0,0,0 ;定义一段字节存储空间,内容为,0,0,0,0
DA TA ENDS ;数据段定义
CODE SEGMENT ;代码段定义
ASSUME CS:CODE,DS:DATA
START: MOV AX,DA TA ;程序执行起始点
MOV DS,AX ;将数据段地址寄存器指向用户数据段
LEA SI, BUF ;BUF偏移地址指向SI
LEA DI, ASCII ;ASCII偏移地址指向DI
MOV CX, COUNT ;设定循环次数
DON: MOV AL,[SI] ;SI地址内数据送入AL
ADD AL, 30H ;AL中数据加30H,转换为该数据的ASCII码
MOV [DI], AL ;AL中数据送入DI所指地址中
INC SI ;SI所指地址加1
INC DI ;DI所指地址加1
LOOP DON ;循环DON
MOV AH, 4CH ;返回DOS
INT 21H
CODE ENDS ;代码段定义
END START ;程序结束
(1)根据需要加上完整数据段段定义、代码段定义、程序结束等;
(2)写出每行代码的注释,说明程序实现的功能。
程序的功能是将BUF存储空间数据装换为ASCII码存入ASCII所指偏移地址
完善程序,说明程序功能(15分)
下面是程序主要片段:
DA TA SEGMENT ;数据段定义
BUF DW 1234H, 5678H ;定义一段字存储空间,内容为1234H,5678H
MAX DW ? ;定义一个字存储空间
DA TA ENDS ;数据段定义
CODE SEGMENT ;代码段定义
ASSUME CS:CODE,DS:DATA
START: MOV AX,DA TA ;程序执行起始点
MOV DS,AX ;将数据段地址寄存器指向用户数据段
MOV SI, OFFSET BUF ;BUF偏移地址指向SI
MOV AX,[SI] ;SI所指地址数据送入AX
MOV BX, [SI+2] ;SI+2所指地址数据送入BX
CALL SUBRUT ;调用子程序SUBRUT
JMP LP1 :转移到LP1
SUBRUT PROC NEAR ;子程序代码段定义
CMP AX, BX ;比较AX与BX内数据大小
JA LP1 ;AX中数据大于BX中数据转移到LP1
XCHG AX,BX ;否则,交换AX与BX中数据
RET ;返回主程序
SUBRUT ENDP ;子程序代码段定义
LP1: MOV MAX, AX ;将AX中数据送入MAX所指偏移地址
MOV AH, 4CH ;返回DOS
INT 21H
CODE ENDS ;代码段定义
END START ;程序结束
(1)根据需要加上完整数据段段定义、代码段定义、程序结束,初始化数据段等;
(2)写出每行代码的注释,说明程序实现的功能。
程序功能是比较BUF中两数据大小,将大数送入MAX所指内存单元
3、(习题5.7, 教材P145)
现有一输入设备,其数据端口的地址为FFE0H,并于端口FFE2H提供状态,当其D0位为1时表明输入数据备好。采用查询方式进行数据传送的程序段,要求从该设备读取100个字节并输入到从2000H开始的内存中。按要求完善程序,写出完整段定义。
;--------------------补充数据段定义--------------------
;数据段段开始
ORG 2000H ; 定位到2000H单元
BUF 120 DUP(0) ; 定义输入缓存区
;数据段段结束
;--------------------补充代码段定义----------
START:
MOV SI,offset BUF ;初始化数据区地址
MOV CX,100
;---------------查询时输入-----------------
LL: MOV DX,0FFE2H ;状态口地址送DX
IN AX,DX ;读状态到AL
TEST AL,01H ;测试外设状态是否满足就绪?
JZ LL ;不满足,继续读状态
MOV DX,0FFE0H ;就绪,准备输入数据
IN AX,DX ;从输入端口读取数据
CALL delay ;延时
MOV [SI],AX ;存数据
INC SI ;准备接受下一个数据
LOOP LL ;数据没有输入完,继续
MOV AH,4CH
INT 21H
DELAY PROC
…… ;程序略
RET
DELAY ENDP
CODE ENDS ;代码段定义结束
END START
《网页设计与制作》自测题1
网站设计全程技术考试题一 一、单项选择(15题共30分) 1.HTML语言结构中哪个是用来指定文件的主体,文字、图形、图像、链接、动画和影音等元素都位于该标签内。B A、 B、
C、 D、:换行标签 C、
:预设格式标签 D、
表示表格的单元格 C、height属性设置表格高度 D、vlign表示表格的水平对齐属性7.框架标签是:A A、 B、 |