微机原理实验参考答案(航大)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《微机原理》实验参考答案

实验1 汇编基本指令及顺序程序设计实验

实验2 分支与DOS中断功能调用程序设计实验

实验3 循环结构程序设计实验

实验4 存储器扩展实验

实验5 8259应用编程实验

实验1汇编基本指令及顺序程序设计实验

一、实验目的

1、掌握汇编语言的开发环境和上机过程;

2、掌握DEBUG命令;

3、掌握顺序程序设计方法;

4、掌握寻址方式;

5、理解和掌握汇编基本指令的功能。

二、实验内容

1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。要求:用3种方法实现。

答:方法一CODE SEGMENT

ASSUME CS:CODE

START: MOV AX,3000H

MOV BX,5000H

MOV CX,AX

MOV AX,BX

MOV BX,CX

CODE ENDS

END START

方法二CODE SEGMENT

ASSUME CS:CODE

START: MOV AX,3000H

MOV BX,5000H

XCHG AX,BX

CODE ENDS

END START

方法三CODE SEGMENT

ASSUME CS:CODE

START: MOV AX,3000H

MOV BX,5000H

PUSH AX

PUSH BX

POP AX

POP BX

CODE ENDS

END START

2、分别执行以下指令,比较寄存器寻址,寄存器间接寻址和相对寄存器寻址间的区别。

MOV AX,BX 寄存器寻址,将BX内容送AX

MOV AX,[BX] 寄存器间接寻址,将DS:BX内存单元内容送AX

MOV AX,10[BX] 寄存器相对寻址,将DS:BX+10内存单元内容送AX 在DEBUG调试模式,用A命令直接编辑相应指令并用T命令单步执行,执行后查询相应寄存器的值并用D命令查内存。

3、已知有如下程序段:

MOV AX,1234H

MOV CL,4

在以上程序段的基础上,分别执行以下指令:

ROL AX,CL AX=2341H

ROR AX,CL AX=4123H

SHL AX,CL AX=2340H

SHR AX,CL AX=0123H

SAR AX,CL AX=0123H

RCL AX,CL 带进位标志位的循环左移

RCR AX,CL 带进位标志的循环右移

4、设有以下部分程序段:

TABLE DW 10H,20H,30H,40H,50H

ENTRY DW 3

LEA BX,TABLE

ADD BX,ENTRY

MOV AX,[BX]

要求:(1)将以上程序段补充成为一个完整的汇编程序。

答:DATA SEGMENT

TABLE DW 10H,20H,30H,40H,50H

ENTRY DW 3

DATA ENDS

CODE SEGMENT

ASSUME DS:DATA,CS:CODE

START: MOV AX,DATA

MOV DS,AX

LEA BX,TABLE

ADD BX,ENTRY

MOV AX,[BX]

MOV AH,4CH

INT 21H

CODE ENDS

END START

(2)AX=3000H

实验2 分支与DOS中断功能调用程序设计实验

一、实验目的

1、掌握条件转移、无条件转移指令的功能及应用;

2、掌握分支程序的设计、编写、调试和运行方法。

3、掌握1号、2号和9号功能调用及其程序设计方法。

二、实验内容

1、编程求|X-Y|,结果放在RESULT单元中。X和Y都为16位操作数。

DA TA SEGMENT

X DW 1234H

Y DW 5678H

RESULT DW ?

DA TA ENDS

CODE SEGMENT

ASSUME DS:DATA,CS:CODE

START: MOV AX,DATA

MOV DS,AX

MOV AX,X

SUB AX,Y

JAE NEXT;设X,Y是不带符号数,X>=Y转移

MOV AX,Y

SUB AX,X

NEXT: MOV RESYLT,AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

2、编写一程序,实现从键盘输入一个字符,判断其是不是大写字母,如果是则请输出这个大写字母,如果不是,请输出“这不是一个大写字母”的英文信息(要求:能连续输入)。

DATA SEGMENT

MS1 DB ‘IT IS A BIG CAPITAL$’

MS2 DB ‘IT IS NOT A BIG CAPITAL$’

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START:MOV AX,DATA

MOV DS,AX

NEXT: MOV DX,OFFSET MS2

MOV AH,1

INT 21H; 1号功能调用

CMP AL,0DH

JZ EXIT

CMP AL, ‘A’

JB NO

CMP AL, ‘Z’

JA NO

MOV DX,OFFSET MS1

NO: MOV AH,9

INT 21H

IMP NEXT

EXIT:MOV AH,4CH

INT 21H

CODE ENDS

END START

3、请编写一程序,实现将大写字母字符串转换成小写字母字符串。设字符串的首地址为STRING,字符串的长度在N单元内。

相关文档
最新文档