实验一系统认识实验.docx

上传人:b****5 文档编号:30090138 上传时间:2023-08-04 格式:DOCX 页数:15 大小:476.97KB
下载 相关 举报
实验一系统认识实验.docx_第1页
第1页 / 共15页
实验一系统认识实验.docx_第2页
第2页 / 共15页
实验一系统认识实验.docx_第3页
第3页 / 共15页
实验一系统认识实验.docx_第4页
第4页 / 共15页
实验一系统认识实验.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

实验一系统认识实验.docx

《实验一系统认识实验.docx》由会员分享,可在线阅读,更多相关《实验一系统认识实验.docx(15页珍藏版)》请在冰豆网上搜索。

实验一系统认识实验.docx

实验一系统认识实验

实验一系统认识实验

1.实验设备

硬件:

PC计算机一台;软件,汇编软件

2.实验目的

1.熟悉汇编语言程序设计方法;

2.熟悉汇编程序调试过程;

3.掌握使用数据传送、运算类、转移等指令编程及调试方法。

4..掌握顺序结构、分支结构、循环结构和子程序调用的编程方法。

3.实验及实验报告要求

①.编程、调试、运行、检查结果,并记录,

要求:

对程序反复输入几组数据,并运行程序,观察记录结果。

②实验报告要求

实验报告中应包含实验内容、源程序、实验步骤、运行结果、分析结果是否正确及存在的问题。

4.实验过程及结果

1-1.从3500H内存单元开始建立0~15共16个数据(建立的数据为00H,01H~09H.0AH~0FH)。

并运行之,检查记录结果。

(1)实验源程序

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

MOVDI,3500H

MOVCX,16

MOVAH,00H

SAHF;此处输入代码段代码

MOVAL,00H

A1:

MOV[DI],AL

INCDI

INCAL

LOOPA1

CODESENDS

ENDSTART

(2)实验结果与分析

反汇编后,显示内存装入的机器指令用汇编指令表示如下:

程序结束后,使用D13E7:

3500↙查看13E7:

3500H单元开始的内存中的数据如下图所示:

 

图中直线所标部分为从3500H内存单元开始建立的0~15共16个数据,与程序一致。

1-2.如果建立的数据为BCD码表示的十进制数据(建立的数据应为00H,01H~09H,10H~15H),应如何修改上述程序.并运行之,检查记录结果。

(1)实验源程序如下:

DATASSEGMENT

ORG3500

MEM1DB16DUP(?

);此处输入数据段代码

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

MOVDI,3500H

MOVCX,16

MOVAH,00H

SAHF;此处输入代码段代码

MOVAL,00H

A1:

ADDAL,00H

DAA

MOV[DI],AL

INCDI

INCAL

LOOPA1

CODESENDS

ENDSTART

(2)实验结果与分析

反汇编后,显示内存装入的机器指令用汇编指令表示如下:

程序结束后,使用D13E7:

3500↙查看13E7:

3500H单元开始的内存中的数据如下图所示:

图中方框内部分为从3500H内存单元开始建立的BCD码表示的十进制数据,与程序一致。

1-3.编程完成1+2+3+4+5+6+7+8+9运算。

(1)实验源程序如下:

DATASSEGMENT

ORG3500H

MEM1DB2DUP(?

);此处输入数据段代码

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

MOVDI,3500H

MOVAL,0

MOVBL,1

MOVCX,9

A1:

ADDAL,BL

INCBL

LOOPA1

MOV[DI],AL

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

(2)实验结果与分析

反汇编后,显示内存装入的机器指令用汇编指令表示如下:

运行程序00000017的结果为下图方框中AX=132D,相加结果为:

2D

在内存中显示结果为:

1-4.编程完成1+2+3+4+5+6+7+8+~+100运算。

(1)实验源程序如下:

DATASSEGMENT

ORG3500H

MEM1DB10DUP(?

);此处输入数据段代码

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

MOVDI,3500H

MOVAX,0

MOVBX,1

MOVCX,100

A1:

ADDAX,BX

INCBX

LOOPA1

MOV[DI],AX

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

(2)实验结果与分析

反汇编后,显示内存装入的机器指令用汇编指令表示如下:

运行程序00000018的结果为下图方框中AX=13BA

在内存中显示结果为:

1+2+3+4+5+6+7+8+~+100=5050=13BAH与实际结果一致。

1-5.将内存3500H单元开始存放的0~9共10个字节数传递到3600H单元开始的数据区中(同一段内传送)。

(1)实验源程序如下:

DATASSEGMENT

ORG3500H

MEM1DB0,1,2,3,4,5,6,7,8,9

ORG3600H

MEM2DB10DUP(?

);此处输入数据段代码

DATASENDS

STACKSSEGMENT

;此处输入堆栈段代码

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVSI,3500H

MOVDI,3600H

MOVCX,10

CLD

NEXT:

MOVAL,[SI]

MOV[DI],AL

INCSI

INCDI

DECCX

JNZNEXT;此处输入代码段代码

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

(2)实验结果与分析

反汇编后,显示内存装入的机器指令用汇编指令表示如下:

运行该程序00000018,并在内存中显示3500H单元内容及3600H单元内容,传送结果如下图所示:

1-6.在1-5题中,如果采用字数据传送,应该如何修改程序?

并运行之,检查记录结果。

(1)实验源程序如下:

DATASSEGMENT

ORG3500H

MEM1DB0,1,2,3,4,5,6,7,8,9

ORG3600H

MEM2DB10DUP(?

);此处输入数据段代码

DATASENDS

STACKSSEGMENT;此处输入堆栈段代码

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVSI,3500H

MOVDI,3600H

MOVCX,10

CLD

NEXT:

MOVAx,[SI]

MOV[DI],Ax

INCSI

INCDI

DECCX

JNZNEXT;此处输入代码段代码

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

(2)实验结果与分析

程序运行后与1-5结果一样,如图所示:

1-7.在1-5题中,如果采用串传送指令(MOVSB,MOVSW指令)如何修改程序?

并运行之,检查记录结果。

(1)实验源程序如下:

DATASSEGMENT

ORG3500H

MEM1DB0,1,2,3,4,5,6,7,8,9

ORG3600H

MEM2DB10DUP(?

);此处输入数据段代码

DATASENDS

STACKSSEGMENT;此处输入堆栈段代码

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVES,AX

MOVSI,3500H

MOVDI,3600H

MOVCX,10

CLD

NEXT:

MOVSB

DECCX

JNZNEXT;此处输入代码段代码

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

(2)实验结果与分析

反汇编后,显示内存装入的机器指令用汇编指令表示如下:

运行该程序00000015,在内存中显示3500H单元内容及串传送后3600H单元内容,传送结果如下图所示:

结果与以上两个实验结果一致。

1-8.教材160页例题3.38

(1)实验源程序如下:

DATASSEGMENT

VARXDW6

VARYDW7

RESULTDW?

;此处输入数据段代码

DATASENDS

STACK1SEGMENTPARASTACK

DW50DUP(?

);此处输入堆栈段代码

STACK1ENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACK1

START:

MOVAX,DATAS

MOVDS,AX

MOVAX,STACK1

MOVSS,AX

MOVDX,VARX

ADDDX,VARY

MOVCL,3

SALDX,CL

SUBDX,VARX

SARDX,1

MOVRESULT,DX;此处输入代码段代码

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

(2)实验结果与分析

反汇编后,显示内存装入的机器指令用汇编指令表示如下:

运行该程序,并将结果在内存中显示,如图所示:

其运算结果如图中方框内所示Z=0031H=49,与实际运算结果一致。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1