文档库

最新最全的文档下载
当前位置:文档库 > 汇编语言练习题及答案

汇编语言练习题及答案

回答问题

1、什么是分时复用技术? 8086的那些引脚采用了分时复用技术?这些引脚在总线周期的T1状态传

送的是什么信息?在总线周期的其他状态(T2、T3、T4)传送的是什么信息?

分时复用:在不同的时刻分别传送不同的信息(地址、数据、状态信息)。

这些引脚在总线周期的T1状态传送的是地址信息。当访问存储器时,T1状态输出A19~A16,与AD15~AD0一起构成访问存储器的20位物理地址。

在总线周期的其他状态(T2、T3、T4)传送的是数据或状态信息。

2、什么是逻辑地址与物理地址?两者的关系是什么?

逻辑地址:“段地址:段内偏移地址”。

物理地址:CPU与存储器进行数据交换时在地址总线上提供的20位地址信息

物理地址=段地址×10H+段内偏移地址

物理地址与逻辑地址的关系:物理地址=段地址×10H+段内偏移地址

3、中断处理过程包括那些步骤?

关中断保护现场开中断中断服务恢复现场中断返回

4、MUL、XLAT、SHL、ROL指令的工作过程是什么?

MUL:(AX)←(SRC)*(AL) (DX:AX)←(SRC)*AX

XLAT:(AL)←((BX)+(AL))

SHL CF←←DST—0

ROL :CF←←DST ←

↓→→→↑

5、串操作指令有哪5条,其有什么共同特点?

MOVS LODS CMPS SCAS STOS

1)总是SI寄存器寻址源操作数,DI寄存器寻址目的操作数

2)每一次操作以后修改地址指针是增量还是减量取决于DF

3) 有的串操作指令可加重复前缀指令按规定的操作重复进行重复操作的次数由CX寄存器决定

6、8259A中IRR、IMR和ISR三个寄存器的作用是什么?

IRR中断请求寄存器接受并锁存IR0~IR7的中断请求信号

IMR 中断屏蔽寄存器各级中断屏蔽

ISR 中断服务寄存器保存当前正在处理的中断请求

7、定时/计数器芯片8253占用几个端口地址?各个端口地址分别对应什么?

8253占用4个端口地址。其中00号端口地址为计数器0的计数初值寄存器地址或输出锁存寄存器地址;01号端口地址为计数器1的计数初值寄存器地址或输出锁存寄存器地址;10号端口地址为计数器2的计数初值寄存器地址或输出锁存寄存器地址;11号端口地址为三个计数器公用的控制字寄存器地址。

8、8253每个计数通道与外设接口有哪些信号线,每个信号的用途是什么?

CLK 计数器的时钟输入; GATE 计数器的门脉冲控制输入; OUT 计数器的输出.

9、8253工作方式0与方式3的工作流程是什么?

10、8255A占用几个端口地址?各个端口地址分别对应什么?

四个00号端口地址为A端口地址01号端口地址表示为B端口地址10号表示C端口地址

11号端口地址表示为控制口端口地址

11、若(CS)=8100H,代码段可寻址的范围为(即代码段最小、最大物理地址分别为)?

81000H~90FFFH

12、当操作数存放于存储器时,CPU需要计算存放操作数的存储单元的偏移地址。其偏移地址有

哪几部分构成?

基址变址立即数

一、编程解决问题(只用写代码段的主要部分,段定义语句可不写):

1、在存储器中数据段与附加段分别有两个不相同的串,首地址分别为string1和string2,找出其中

第一个不相等的元素,其位置放于数据段中以Location为变量名的存储单元内。

LEA SI,STRING1

LEA DI,STRING2

MOV CX,20

MOV DL,0

CLD

REPE CMPSB

DEC SI

DEC DI

MOV DL,SI

LEA SI,LOCATION

MOV [SI],DL

2、存储器数据段中存放着由8个大写字母组成的串,以String为变量名,编程依次将串中元素转换

为对应小写字母。如以下定义的串。

String db ‘YOUANDME’

LEA SI,STRING

MOV CX,8

L:

MOV AL,[SI]

ADD AL,20H

MOV [SI],AL

INC SI

LOOP L

3、存储器数据段中存放着6个字节型数据,以Val为首

Val db 12h, 0ffh, 82h, 96h, 03h, 22h, 0feh, 0ah

Amount db 0h

LEA SI,VAL

MOV CX,8

MOV,DL,0

L:

MOV AL,[SI]

CMP AL,80H

JB SMALLER

INC DL

SMALLER:

INC SI

LOOP L

LEA SI,AMOUNT

MOV [SI],DL

4、存储器附加段中存放着以Array为变量名的串,从中搜寻字符“#”。若找到,将“Y”输入至DL

寄存器;否则将“N”输入至DL寄存器。

Array db "1","2","3","4","@","#","%"

LEA DI,Array

MOV AL,’#’

MOV CX,7

MOV DL,0

CLD

REPNE SCASB

JZ MATCH

MOV DL,’N’

JMP DSPY

MATCH:

DEC DI

MOV DL,’Y’

DSPY:

MOV AH,02H

INT 21H

HLT

5、数据段中以Val为首地址存放着8个无符号字节型数据,找出最大值,之后存放到最后的MAX

单元。数据定义如下:

val db 12h, 0ffh, 02h, 56h, 03h, 22h, 0feh, 0ah,

max db 00h

Lea si,val

Mov cx,8

Mov al,[si]

L:

Cmp al,[si+1]

Ja Bigger

MOV AL,[SI+1]

Bigger:

INC SI

LOOP L

LEA SI,MAX

MOV [SI],AL

6、存储器数据段中存放着由8个数字组成的串,大小在0~9之间,以Val为首地址,编程依次将串

中元素转换为对应的ASC码。如以下定义的串。

Val db 5, 6, 7, 8, 0, 1, 2, 3

Lea si,Val

Mov cx,8

L:

Mov al,[si]

Add al,30H

Mov [si],al

Inc si

Loop L

7、存储器数据段中存放着4个字节型数据,编程将其中小于80H的数加上80H,大于等于80H的不

变。如以下定义的val变量。

val db 012h, 084h, 0f2h, 01h

LEA SI,VAL

MOV CX,4

L:

MOV AL,[SI]

CMP AL,80H

JAE BIGGER

ADD AL,80H

MOV [SI],AL

BIGGER:

INC SI

LOOP L

8、已知一计数器/定时器8253的时钟频率为1MHZ,如下图所示,其端口地址为080H~083H。

请回答:

(1)该电路中通道0的OUT引脚输出100KHZ连续方波,

通道0的计数初值为多少(写出计算式)?GATE0应接何电位?

N=TOUT/TCLK=(1/1000000)/(1/1000000)=10GATE0=1 高电位

(2)若要8253的OUT1端在0.001秒后点亮发光二极管,

计数初值为多少(写出计算式)?

N=0.001/(1/1000000)=1000 高电位

(3)写出实现上述功能的8253初始化程序(8253的控制字格式见下图)。

0 —二进制计数

1—十进制计数

将减1计数器

汇编语言练习题及答案

锁存到OL中(

0 D D

择计数器0择计数器1择计数器2法

对计数器的低

1

2

3

4 D D D D

D D

汇编语言练习题及答案

MOV AL,01010000B OUT 083H,AL MOV AL,eb OUT 081H,AL Mov al,03h Out 081h,al

9、 用8255A 控制三个发光二极管显示。8255A 的端口地址为31H~33H ;控制口:34H 。试编写8255程序控制三个

发光二极管:开关闭合时,点亮发光二极管,断开时熄灭二极管。

(1)首先编写8255初始化程序

汇编语言练习题及答案

汇编语言练习题及答案

D D D D D D D D

MOV AL,10001011B OUT 34H,AL

(2)编写控制程序。

Main: IN AL,32H OUT 31H,AL

Jmp main

10、 用8255A 控制三个发光二极管显示。8255A 的端口地址为:10H~13H 。试编写8255程序控制三个发光二极管:

PB i 开关闭合时,PA 0~PA i 接的二极管全亮。

(1)首先编写8255初始化程序

D

汇编语言练习题及答案

汇编语言练习题及答案

D D D D D D D

MOV AL,10001001B OUT 13H,AL

(2)编写控制程序。

IN AL,11H

K1: CMP AL,02H JZ K1

MOV AL,00H

OUT 10H,AL