《微机原理实验》考试题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 题目:编程将(AX )=2387、(BX )=192FH 、(CX )=9256中的无符号数按由大到小排序,上机编程调试出程序,并将程序及排序结果记录在下面。
CODE SEGMENT ASSUME CS:CODE START: MOV AX,2387 MOV BX,192FH MOV CX,9256 CMP AX,BX JAE NEXT1 XCHG AX,BX NEXT1: CMP AX,CX JAE NEXT2 XCHG AX,CX NEXT2: CMP BX,CX JAE NEXT3 XCHG BX,CX NEXT3:
MOV AH,4CH INT 21H CODE ENDS END START
4 题目:中断向量为:1234:5678H ,编程将此中断向量写入类型0所在的中断向量表,上机调试出程序,并将程序和结果记录下来。(直接用MOV 指令写入即可)
code segment
assume cs:code,ds:code start:xor ax,ax mov ds,ax mov bx,0 mov cl,2 shl bx,cl
mov word ptr[bx],5678h mov word ptr[bx+2],1234h mov ah,4ch int 21h code ends end start
2题目:在数据段中定义如下数据:32,34,89H,,编程将以上数据按有符号数进行排序,并将程序和结果记录下来。 DA TA SEGMENT NUM DB 32,34,89H DA TA ENDS CODE SEGMEN T
ASSUME CS:CODE,DS:DA TA STAR T: MOV AX,DA TA
MOV DS,AX ;初始化D S
LEA BX ,NUM ;取有效地址到BX ,以便访
问要排序的数
MOV AL,[BX] CMP AL,[BX +1]
JGE NEXT1 ;若第一个数大则跳转,否则将
第一个与第二个数交换
XCHG AL,[BX+1] MOV [BX],AL NEXT1: CMP AL,[BX +2]
JGE NEXT2;若第一个数大则跳转,否则将第
一个与第三个数交换
XCHG AL,[BX+2] MOV [BX],AL NEXT2:
MOV AL,[BX+1];将第二个和第三个数比较 CMP AL,[BX +2]
JGE NEXT3;若第二个数大则跳转,否则将第
二个与第三个数交换
XCHG AL,[BX+2] MOV [BX+1],AL NEXT3: MOV AH,4CH INT 21H CODE ENDS
3 题目:在数据段中定义如下数据:99,25,86,编程将以上数据按无符号数进行排序,上机调试出程序,并将程序和结果记录下来。
data segment
num db 99h,25h,86h data ends code segment assume cs:code,ds:data start:mov ax,data mov ds,ax lea bx,num mov al,[bx] cmp al,[bx+1] jae next1 xchg al,[bx+1] mov [bx],al next1:cmp al,[bx+2] jae next2
xchg al,[bx+2] mov[bx],al next2: mov al,[bx+1] cmp al,[bx+2] jae next3
xchg al,[bx+2] mov [bx+1],al next3: mov ah,4ch int 21h code ends end start
5 题目:利用实验箱中的8255并口芯片实现1个发光二极管的闪烁。
io8255a equ 288h io8255b equ 28bh io8255c equ 28ah code segment assume cs:code start: mov dx,28bh mov al,80h out dx,al mov cx,5 disp: mov al,03h out dx,al push cx mov cx,10h delay: loop delay pop cx mov al,02h out dx,al loop disp mov ah,4ch int 21h
code ends end start
13 编写完整的汇编语言程序,实现:显示字符串“Hello World!”,并利用debug 跟踪该程序的执行过程。
DA TA SEGMENT
STR1 DB "Hello World!”,"$" LENT DB ? DA TA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:
MOV AX,DATA
MOV DS,AX ;初始化DS LEA DX,STR1 MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS END START
6 题目:在交通灯实验中请使用8255的C 口 按位置1/置0 的功能实现如下现象: 南北路口的绿灯、东西路口的红灯同时亮30秒左右。
i o8255a equ 288h
io8255b equ 28bh io8255c equ 28ah code segment assume cs:code start: mov dx,28bh mov al,80h out dx,al disp: mov al,0bh out dx,al mov al,05h out dx,al mov cx,2000h de1: mov di,9000h de0: dec di jnz de0
loop de1
mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h mov ah,4ch int 21h code ends end start
7 题目:在交通灯实验中,请使用8255的C 口 按位置1/置0 的功能实现如下现象:东西路口的黄灯闪烁5次。
;设8255的CS 片选地址接280H-287H ;PC1接黄色发光二极管
CODE SEGMENT ASSUME CS:CODE START: MOV DX,28bH MOV AL,80H
OUT DX,AL ;8255初始化 MOV CX,5 DISP: MOB AL,03H
OUT DX,AL ;PC1通过控制端口置位,点亮黄灯
PUSH CX ;暂时保存CX 值,因为下面的循环要用到 MOV CX,100H DELAY :
LOOP DELAY ;延时循环,可以调节 POP CX MOV AL,02H
OUT DX,AL ;PC1通过控制端口清零,熄灭黄灯
LOOP DIS P ;总共循环5次,黄灯亮灭5次,即闪烁5次 MOV AH,4CH INT 21H CODE ENDS END START