汇编语言练习题及答案

更新时间:2023-03-16 01:59:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

回答问题

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 \ 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的控制字格式见下图)。

D7D6D5D4D3D2工作方式D1D0数制CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2 1MHZ 1MHZ 1MHZ 计数器选择读写格式 MOV AL,00010110B OUT 83H,AL MOV AL,10D OUT 080H 0 —二进制计数1—十进制计数000 —方式0001 —方式1×10 —方式2×11 —方式3100 —方式4择计数器0择计数器1择计数器2法将减1计数器CE中的数据锁存到OL中(锁存功能)对计数器的低8位读或写

本文来源:https://www.bwwdw.com/article/fy3v.html

Top