《微机原理实验》考试题及答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档