微机原理与嵌入式系统实验.docx

上传人:b****7 文档编号:26369076 上传时间:2023-06-18 格式:DOCX 页数:16 大小:362.05KB
下载 相关 举报
微机原理与嵌入式系统实验.docx_第1页
第1页 / 共16页
微机原理与嵌入式系统实验.docx_第2页
第2页 / 共16页
微机原理与嵌入式系统实验.docx_第3页
第3页 / 共16页
微机原理与嵌入式系统实验.docx_第4页
第4页 / 共16页
微机原理与嵌入式系统实验.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

微机原理与嵌入式系统实验.docx

《微机原理与嵌入式系统实验.docx》由会员分享,可在线阅读,更多相关《微机原理与嵌入式系统实验.docx(16页珍藏版)》请在冰豆网上搜索。

微机原理与嵌入式系统实验.docx

微机原理与嵌入式系统实验

北京联合大学信息学院

微机原理与嵌入式系统报告

姓 名:

刘仡凡

班级学号:

2009080304429

专业:

通信工程

指导教师:

刘瑞祥

 

2011年11月18日

实验一DOS环境下的汇编语言编程环境使用(基础与验证型)

一、实验要求和目的

1、掌握汇编语言程序设计的基本方法和技能;

2、熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序;

3、熟练掌握宏汇编程序MASM的使用;

4、熟练掌握连接程序LINK的使用。

二、软硬件环境

1、硬件环境:

微机CPU486以上,500MB以上硬盘,32M以上内存;

2、软件环境:

装有MASM5.0、DEBUG、LINK、EDIT、CREF.EXE和EXR2BIN.EXE等应用程序。

三、实验内容与步骤

1、实验内容

编写程序,在屏幕上显示“HelloWorld!

”,该源程序取名为hello.asm。

2、实验步骤

汇编语言程序设计上机过程如图1.1所示。

图1.1汇编语言程序上机过程

(一)用编辑程序EDIT建立汇编语言源程序文件(ASM文件)

在Windows2000或者在WindowsXP环境下鼠标单击“开始”→“运行”,在“运行”中输入“CMD”进入DOS模式,运行EDIT软件,例如:

C>EDIThello.ASM

进入EDIT的程序编辑画面时,输入汇编语言源程序如下:

DATASEGMENT

MSGDB'HelloWorld!

',0DH,0AH,'$';定义数据段,并初始化待显示的字符串

DATAENDS

STACKSEGMENT'stack'

DB100DUP(0);定义堆栈段

STACKENDS

CODESEGMENT

ASSUMEDS:

DATA,SS:

STACK,CS:

CODE;由ASSUM伪指令定义各段寄存器的内容

START:

MOVAX,DATA

MOVDS,AX

LEADX,MSG

MOVAH,9;调用dos功能,显示字符串

INT21H

movah,4ch;返回dos状态

int21h

CODEENDS

ENDSTART

(二)用汇编程序MASM将ASM文件汇编成目标程序文件(OBJ文件)

当源程序建立以后,仍以hello.asm程序为例,我们用汇编程序MASM对hello.asm源程序文件进行汇编,以便产生机器码的目标程序文件hello.obj,其操作步骤如下:

C>MASMhello.asm

Microsoft(R)MacroAssemblerVersion5.00

Copyright(C)MicrosoftCorp1981–1985,1987.Allrightsreserved.

Objectfilename[ABC.OBJ]:

Sourcelisting[NUL.LST]:

Cross-reference[NUL.CRF]:

50674+450574Bytessymbolspacefree

0WarningErrors

0SevereErrors

(三)用连接程序LINK生成可执行程序文件(EXE文件)

经汇编后产生的二进制的目标程序文件(OBJ文件)并不是可执行程序文件(EXE文件),必须经连接以后,才能成为可执行文件。

连接程序并不是专为汇编语言程序设计的。

如果一个程序是由若干个模块组成的,也可通过连接程序LINK把它们连接在一起。

这些模块可以是汇编程序产生的目标文件,也可以是高级语言编译程序产生的目标文件。

连接过程如下:

C>LINKhello.obj

Microsoft(R)OverlayLinkerVersion3.60

Copyright(C)MicrosoftCorp1983-1987.Allrightsreserved.

RunFile[ABC.EXE]:

ListFile[NUL.MAP]:

Libraries[.LIB]:

(四)程序的执行

当我们建立了可执行文件hello.EXE后,就可直接在DOS下执行该程序:

C>hello.exe或者hello

从而显示HelloWorld!

的结果

四、实验要求与提示

1、实验要求

(1)掌握汇编语言程序设计上机过程;

汇编语言上机操作中,不同于windows操作系统,需要进入“命令提示符”界面,通过命令代码进行实际操作。

(2)回答思考问题;

(3)记录实验结果。

练习通过“debug”调试程序,如图:

六、思考与练习以及测评标准

(1)汇编过程中MASMhello和MASMhello.ASM的结果是否一致。

“masmhello”编译对象没有文件后缀,而“masmhello.asm”意为编译“hello.asm”文件;

(2)连接过程中LINKhello和LINKhello.OBJ的结果是否一致。

“linkhello”编译对象没有文件后缀,而“linkhello.obj”将会把“hello.obj”打包成可执行文件,即:

hello.exe;

(3)使用Word如何录入汇编语言源程序。

存档时,后缀改用“.asm”;

实验二Debug的使用(基础与验证型)

一、实验要求和目的

熟练掌握动态调试程序DEBUG的使用;

二、软硬件环境

1、硬件环境:

微机CPU486以上,500MB以上硬盘,32M以上内存;

2、软件环境:

装有MASM5.0、Debug、LINK、EDIT、CREF.EXE和EXR2BIN.EXE等应用程序。

三、实验内容与步骤

1、实验内容

(1) 进入和退出Debug程序

(2) 学会Debug中的D命令、R命令、T命令、G命令、U命、Q命令等的使用。

(3) 利用Debug,验证程序中指令的功能和结果。

(4)使用Debug调试程序调试汇编程序。

2、实验步骤

(1)   在DOS提示符下,进入Debug程序。

(2)   详细记录每一步所用的命令,以及查看结果的方法和具体结果。

(3)求从1开始连续50个奇数之和,并将结果存放在名字为SUM的字存储单元中。

已汇编、连结生成了可执行文件test1.EXE,存放在d:

\MASM目录下。

请使用Debug对其进行调试。

调试过程:

DATASEGMENT;定义数据段

SUMDW0;定义变量并赋初值

DATAENDS

STACKSEGMENTSTACK;定义堆栈段

DB200DUP(0)

STACKENDS

CODESEGMENT;定义代码段

ASSUMEDS:

DATA,SS:

STACK,CS:

CODE;由ASSUM伪指令定义各段寄存器的内容

START:

MOVAX,DATA

MOVDS,AX

MOVCX,5;累加次数

MOVAX,0;存放累加和

MOVBX,1

NEXT:

ADDAX,BX

INCBX

INCBX

DECCX

JNENEXT

MOVSUM,AX;存放最终累加结果

MOVAH,4CH

INT21H;返回dos状态

CODEENDS

ENDSTART

1进入Debug并装入可执行文件test1.EXE

D:

\MASM>Debugtest1.EXE

-

②观察寄存器初始状态

-R

注:

(1)以上显示的寄存器值,可能和你的电脑显示的不一样。

(2)Debug中默认的进制是十六进制。

③观察数据段中相应位置的值

-D数据段:

偏移地址

使用U命令反汇编

-U从程序存放的位置开始

使用T命令进行单步执行观察结果

使用G命令执行

-G地址(程序终止的偏移地址处)

四、实验要求与提示

1、实验要求

(1)熟练掌握Debug的命令;

(2)熟练掌握使用Debug调试汇编程序;

(3)回答思考问题;

(4)记录实验结果。

2、实验提示

一般使用Debug调试汇编程序的步筹如下:

(1)调用DEBUG,装入用户程序

(2)观察寄存器初始状态

(3)以单步工作方式开始运行程序

(4)观察用户程序数据段初始内容

(5)连续工作方式运行程序

五、思考与练习以及测评标准

(1)如何启动和退出Debug程序。

(2)整理每个Debug命令使用的方法,实际示例及执行结果。

(3) 启动Debug后,要装入某一个.EXE文件,应通过什么方法实现?

 

实验三分支程序设计

知识提要:

本部分内容主要对分支程序加以介绍,其知识要点:

1.无条件转移指令JMP

无条件转移指令JMP是使程序无条件转移至目标处,又分为段内转移、段间转移。

2.条件转移指令JXX

条件转移指令可分为三大类:

1)简单条件转移指令指令。

根据单个标志位的状态判断转移条件。

标志位

指令

转移条件

意义

CF

JC

CF=1

有进位/借位

JNC

CF=0

无进位/借位

ZF

JE/JZ

ZF=1

相等/等于0

JNE/JNZ

ZF=0

不相等/不等于0

SF

JS

SF=1

是负数

JNS

SF=0

是正数

OF

JO

OF=1

有溢出

JNO

OF=0

无溢出

PF

JP/JPE

PF=1

有偶数个1

JNP/JPO

PF=0

有奇数个1

2)无符号数条件转移指令。

假设在条件转移指令前使用比较指令,比较两个无符号数A,B,指令进行的的操作是A-B,其转移指令如下:

指令

转移条件

意义

JA/JNBE

CF=0ANDZF=0

A>B

JAE/JNB

CF=0ORZF=1

A>=B

JB/JNAE

CF=1ANDZF=0

A

JBE/JNA

CF=1ORZF=1

A<=B

3)带符号数条件转移指令。

指令

转移条件

意义

JG/JNLE

SF=OFANDZF=0

A>B

JGE/JNL

SF=OFORZF=1

A>=B

JL/JNGE

SFOFANDZF=0

A

JLE/JNG

SFOFORZF=1

A<=B

一、实验要求和目的

1.熟悉汇编语言程序设计结构;

2.熟悉汇编语言分支程序基本指令的使用方法;

3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法。

二、软硬件环境

1.硬件环境:

微机CPU486以上,500MB以上硬盘,32M以上内存;

2.软件环境:

装有MASM5.0、DEBUG、LINK和EDIT等应用程序。

三、实验内容与步骤

1.实验内容

(1)编写计算下面函数值的程序:

设输入数据为X、输出数据Y,且皆为字节变量,使用Debug查看X、Y两个变量的数据

(2)以ARRAY为首地址的内存单元中,存放若干个8位的带符号数,统计数组中大于等于0的数的个数,并将结果存入RESULT字节单元中。

2.实验步骤

(1)编写程序

(2)对程序进行debug调试,观察中间结果

四、实验要求

1.实验要求

(1)画出各程序流程图;

 

(2)列出程序清单,加上适量注释;

datasegment

xxdw12

 

yydw?

dataends

stacksegmentstack'stack'

db100hdup(?

stackends

codesegment

assumecs:

code,ds:

data,ss:

stack

start:

movax,data

movds,ax

movax,xx将xx转移给ax

cmpax,0x与0比较

jgebigprx大于等于0,转bigpr

movyy,0ffffh

jmpexit

bigpr:

jeequprx=0,转equpr

movyy,1

jmpexit

equpr:

movyy,0

exit:

movax,4ch

int21h

codeends

endstart

(3)记录实验结果。

 

五、实验的收获和体会

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

当前位置:首页 > PPT模板 > 其它模板

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

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