微机原理与接口技术实验报告

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

微机原理与接口技术》

上机报告

学院:机电学院指导教师:胡勇学号:631424210229 姓名:鞠其林

实验一初级程序的编写与调试实验

、实验目的

1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序.

2、深入了解数据在存储器中的存取方法, 及堆栈中数据的压入与弹出

3、掌握各种寻址方法以及简单指令的执行过程.

二、实验内容

1、设堆栈指针SP=2000H,AX=3000H,BX=5000H请, 编一程序段将AX的内容和BX 的内容进行交换. 请用堆栈作为两寄存器交换内容的中间存储单元, 用DEBUG调试程序进行汇编与调试.

程序:

MOV AX,3000

MOV BX,5000

MOV SP,2000

PUSH AX

PUSH BX

POP AX

POP BX

HLT

2、设AX=0002H,编一个程序段将AX的内容乘10, 要求用移位的方法完成程序:

MOV AX,0002 MOV BX,AX MOV CL,2 SHL AX,CL ADD AX,BX MOV

CL,1 SHL AX,CL HLT

三、心得体会

从这个程序的编辑过程中我感受到了汇编语言的强大,很直观的就可以读懂程

序的含义,但代码比较难记,而且语法严谨,我调试的过程中犯了一点错误,

修改的次数较多,希望我以后可以不再犯同样的错误,也是因为我练的比较的 少,还很生疏,我以后一定多加练习,把汇编学好 实验二 加法及判断程序的编写与调试

、实验目的 1、熟练掌握编写汇编语言源程序的基本方法和基本框架

2、学会编写顺序结构 , 分支结构和循环结构的汇编程序

3、掌握程序中数据的产生与输入输出的方法. 二、实验内容

1、用汇编语言编写一个加法程序:

1325+9839

请用ASCII 码的形式将加数与被加数存放在数据区DATA1和DATA2中, 并将相加结果显示输出.

程序:

DATA SEGMENT

DATA1 DB '5','2','3','1'

DATA2 DB '9','3','8','9'

DATA ENDS

STACK SEGMENT PARA STACK 'STACK'

DB 200 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START: MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

LEA SI,DATA1

LEA DI,DATA2

MOV CX,4

MOV AH,0

NEXT:

MOV AL,[SI]

ADC AL,[DI]

ADC AL,AH

MOV AH,0

AAA

ADD AL,30H

MOV [DI],AL

INC DI

INC SI

LOOP NEXT

MOV CX,5

ADD AH,30H

MOV [DI],AH

NEXT1:MOV DL,[DI]

MOV AH,02

INT 21H

DEC DI

LOOP NEXT1

MOV AH,4CH INT 21H CODE ENDS

END START

2、假设有一组数据:5,-4,0,3,100,-51, 请编写一程序, 判断:每个数是否大于

0?等于0?还是小于0?并输出其判断结果, 即

即:

1 当X>0

Y=

0 当X=0

-1 当X<0

程序:

DATA SEGMENT

DATA1 DB 5, -4, 0 ,3,100,-51

STRING1 DB'Y=1','$'

STRING2 DB'Y=0','$'

STRING3 DB'Y=-1','$'

DATA ENDS

STACK SEGMENT PARA STACK 'STACK'

DB 200 DUP(?)

STACK CODE ENDS SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START:

MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX LEA SI,DATA1 MOV CX,6

NEXT: MOV AL,[SI]

CMP AL,0 JZ NEXT1 JNS NEXT2 JS NEXT3

NEXT1:

MOV DX,OFFSET STRING2 MOV AH,09H INT 21H JMP NEXT4

NEXT2:

MOV DX,OFFSET STRING1 MOV AH,09H INT 21H JMP NEXT4

NEXT3: MOV DX,OFFSET STRING3

MOV AH,09H INT 21H NEXT4:

INC SI

LOOP NEXT

MOV AH,4CH INT 21H

CODE ENDS

END START

三、心得体会通过程序汇编,熟练掌握运用轻松汇编软件的方法,学会了使用循环位移指令的方法,并巩固了对各项指令运用。某些地方掌握不牢,有待学习提高。

实验三大小写字母互换程序的编写与调试

一、实验目的:

(1)、学习子程序的定义和调用方法。(2)、掌握子程序设计、调试。

二、实验内容:对内存中给定的几个无符号字节数,求其最大值和最小值。

3、实验步骤:

(1)在内存4000H~4007H中写入任意八个字节的数。(2 开始运行程序。

4、实验运行结果:编程代码如下所示:

ORG 0100H

START0: MOV SI,4000H

MOV CX,0008

MAXMIN:MOV BH,[SI]

MOV BL,BH

CON2: LODSB

CMP AL,BH

JNA X1

MOV BH,AL

JMP X2

相关文档
最新文档