微机原理实验报告

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

班级:

指导老师:学号:

姓名:

实验一两个多位十进制数相加的实验

一、实验目的

学习数据传送和算术运算指令的用法

熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。

二、实验内容

将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。

三、程序框图

图3-1

四、参考程序清单

DATA SEGMENT

DATA1 DB 33H,39H,31H,37H,34H;被加数

DATA1END EQU $-1

DATA2 DB 34H,35H,30H,38H,32H;加数

DATA2END EQU $-1

SUM DB 5 DUP(?)

DATA ENDS

STACK SEGMENT

STA DB 20 DUP(?)

TOP EQU LENGTH STA

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV AX,TOP

MOV SP,AX

MOV SI,OFFSET DATA1END

MOV DI,OFFSET DATA2END

CALL ADDA

MOV AX,4C00H

INT 21H

ADDA PROC NEAR

MOV DX,SI

MOV BP,DI

MOV BX,05H

AD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30H

DEC SI

DEC DI

DEC BX

JNZ AD1

MOV SI,DX

MOV DI,BP

MOV CX,05H

CLC

AD2: MOV AL,[SI]

MOV BL,[DI]

ADC AL,BL

AAA

MOV [SI],AL

DEC SI

DEC DI

LOOP AD2

MOV SI,DX

MOV DI,BP

MOV BX,05H

AD3: ADD BYTE PTR [SI],30H

ADD BYTE PTR [DI],30H

DEC SI

DEC DI

DEC BX

JNZ AD3

RET

ADDA ENDP

CODE ENDS

END START

五、实验结果与分析

这次实验依次将相加数与被加数存入AL,BL,依次从低位向高位相加,然后把结果放在内存中。

六、实验体会

这次实验是微机原理课的第一次实验,主要是为了通过这次的实验,让我们对这个软件的编程有更深的了解、知道如何运行程序。在实验中误把C00H ,写成了COOH.从中,我学到了许多课本里学不到的东西,有些意外,有些收获。

实验二排序实验

一、实验目的

掌握用汇编语言编写排序程序的思路和方法。

二、实验内容

将指定内存出开始的数据(最多为4位数)按从大到小的顺序排列。第一个数字表示数据的个数(不是要比较的数值!!!)。

三、程序流程图

图3-2

四、程序清单

DATA SEGMENT

ADDR DW 8,234,35,67,876,54,39,765,237 DATA ENDS

STACK SEGMENT

STA DW 32 DUP(?)

TOP DW ?

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA

MOV DS,AX

MOV ES,AX

MOV AX,STACK

MOV SS,AX

MOV SP,TOP

MOV CX,WORD PTR ADDR[0]

DEC CX

LOOP1: MOV DI,CX

MOV BX,2

LOOP2: MOV AX,WORD PTR ADDR[BX]

CMP AX,WORD PTR ADDR[BX+2]

JGE CCC

XCHG AX,WORD PTR ADDR[BX+2]

MOV WORD PTR ADDR[BX],AX CCC: ADD BX,2

LOOP LOOP2

MOV CX,DI

LOOP LOOP1

EXIT: MOV AX,4C00H

INT 21H

CODE ENDS

END START

五、实验结果与分析

这次实验是给我们8个数字,按从大到小的顺序排列出来,定义的数字中8是一个指示数字的个数量。

六、实验体会

通过此次的实验,懂得了用汇编语言编写排序程序的思路和方法,知道义的数字中8是一个指示数字的个数量,不是一个数。更加

加强了我对程序的操作的熟练程度。

相关文档
最新文档