微机接口技术课程设计汇编语言开发环境认识.docx

上传人:b****5 文档编号:12270687 上传时间:2023-04-17 格式:DOCX 页数:23 大小:78.25KB
下载 相关 举报
微机接口技术课程设计汇编语言开发环境认识.docx_第1页
第1页 / 共23页
微机接口技术课程设计汇编语言开发环境认识.docx_第2页
第2页 / 共23页
微机接口技术课程设计汇编语言开发环境认识.docx_第3页
第3页 / 共23页
微机接口技术课程设计汇编语言开发环境认识.docx_第4页
第4页 / 共23页
微机接口技术课程设计汇编语言开发环境认识.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

微机接口技术课程设计汇编语言开发环境认识.docx

《微机接口技术课程设计汇编语言开发环境认识.docx》由会员分享,可在线阅读,更多相关《微机接口技术课程设计汇编语言开发环境认识.docx(23页珍藏版)》请在冰豆网上搜索。

微机接口技术课程设计汇编语言开发环境认识.docx

微机接口技术课程设计汇编语言开发环境认识

 

微机原理与接口技术A

实验报告

 

姓名:

学号63120

班级:

电子专业12级03班

指导教师:

 

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

(1)

实验项目名称:

汇编语言开发环境认识

实验日期:

2014/4/4实验成绩:

实验评定标准:

1)实验结果及分析是否合理

A()B()C()

2)实验程序流程图是否正确

A()B()C()

3)实验报告是否按照规定格式

A()B()C()

一、实验目的

1.熟悉汇编语言程序上机的一般过程和方法。

2.掌握宏汇编程序MASM5.1和链接LINK3.6的使用方法。

3.了解DEBUG调试汇编语言程序的过程及方法。

二、实验器材

电脑一台(带有命令提示符)

三、实验内容

显示字符串“Howdoyoudo.”

四、实验程序流程图

(一)试验程序:

datasegment

mesagedb"Howdoyoudo.",0dh,0ah,24h;想当于C语言“\n”和结束字符

dataends

codesegment

assumecs:

code,ds:

data;通知汇编程序有关段寄存器与逻辑段的关系

start:

movax,data;ds<==数据段地址

movds,ax

leadx,message;取字符串message的有效地址存入dx

movah,09h;调用9号功能显示字符串

int21h

movah,4ch;非标准方式返回DOS

int21h

codeends

endstart

(二)流程图:

 

五、实验结果及分析

(一)结果:

C:

\Users\Administrator>e:

E:

\>cdtest

E:

\test>cdtest1

E:

\test\test1>test1

Howdoyoudo.

E:

\test\test1>

(二)分析:

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

(2)

实验项目名称:

Debug程序调试实验

实验日期:

2014/4/11实验成绩:

实验评定标准:

1)实验结果及分析是否合理

A()B()C()

2)实验程序流程图是否正确

A()B()C()

3)实验报告是否按照规定格式

A()B()C()

一、实验目的

1.熟悉汇编语言程序上机的一般过程和方法。

2.掌握宏汇编程序MASM5.1和链接LINK3.6的使用方法。

3.了解DEBUG调试汇编语言程序的过程及方法。

二、实验器材

电脑一台(带有命令提示符)

三、实验内容

X和Y均为16位无符号数,写一个求表达式16X+Y值得程序

四、实验程序流程图

(一)试验程序:

dsegsegment

xxxdw1234h;设X为1234H

yyydw5678h;设Y为5678H

zzzdd?

;双自变量,用于保存结果

dsegends

csegsegment'CODE';指定代码段类别名,以便用MASM6.11汇编

assumecs:

cseg,ds:

dseg

start:

movax,dseg;DS<==数据段地址

movds,ax

movax,xxx;AX<==X

xordx,dx

movcx,16

mulcx;DX|AX<==X*16

addax,yyy;DX|AX<==DX|AX+Y

adcdx,0

movwordptrzzz,ax;zzz,<==DX|AX

movwordptrzzz+2,dx

movah,4ch

int21h

csegends

endstart

(二)流程图:

 

五、实验结果及分析

(一)结果:

E:

\test\test2>debugtest2.exe

-g

Programterminatednormally

-u

1472:

0000B87114MOVAX,1471

1472:

00038ED8MOVDS,AX

1472:

0005A10000MOVAX,[0000]

1472:

000833D2XORDX,DX

1472:

000AB91000MOVCX,0010

1472:

000DF7E1MULCX

1472:

000F03060200ADDAX,[0002]

1472:

001383D200ADCDX,+00

1472:

0016A30400MOV[0004],AX

1472:

001989160600MOV[0006],DX

1472:

001DB44CMOVAH,4C

1472:

001FCD21INT21

-d1471:

00000007

1471:

000034127856B87901004.xV.y..

-

(二)分析:

数据送存时,高位字节数据放在内存高地址单元,低位放在低地址。

 

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

实验项目名称:

简单汇编语言设计实验

实验日期:

2014/4/18实验成绩:

实验评定标准:

1)实验结果及分析是否合理

A()B()C()

2)实验程序流程图是否正确

A()B()C()

3)实验报告是否按照规定格式

A()B()C()

一、实验目的

1.掌握宏汇编程序MASM5.1和链接LINK3.6的使用方法。

2.了解DEBUG调试汇编语言程序的过程及方法。

二、实验器材

电脑一台(带有命令提示符)

三、实验内容

求两个数的平均数,这两个数分别放在x单元赫尔y单元中,而平均值放在z单元中。

四、实验程序流程图

(一)试验程序:

.modelsmall

.data

xdb95;等于十六进制数5Fh

ydb87;等于十六进制数57h

zdb?

.code

mainprocfar

start:

pushds

movax,0

pushax

movax,_data;取数据段地址放入ds

movds,ax

moval,x;第一个数送入al

addal,y;两数相加,结果送入al

movah,0;带进位加法,进位送入ah

adcah,0

movbl,2;除数2送bl

divbl;求平均值,商送入al,余数送入ah

movz,al;平均值,即商送入z单元,结果为5Bh

ret

mainendp

endstart

(二)流程图:

 

五、实验结果及分析

(一)结果:

E:

\test\test3>debugtest3.exe

-g

Programterminatednormally

-u

1471:

00001EPUSHDS

1471:

0001B80000MOVAX,0000

1471:

000450PUSHAX

1471:

0005B87214MOVAX,1472

1471:

00088ED8MOVDS,AX

1471:

000AA00E00MOVAL,[000E]

1471:

000D02060F00ADDAL,[000F]

1471:

0011B400MOVAH,00

1471:

001380D400ADCAH,00

1471:

0016B302MOVBL,02

1471:

0018F6F3DIVBL

1471:

001AA21000MOV[0010],AL

1471:

001DCBRETF

1471:

001E5FPOPDI

1471:

001F57PUSHDI

1471:

0018F6F3DIVBL

1471:

001AA21000MOV[0010],AL

1471:

001DCBRETF

-d1472:

0E10

1472:

00005F57_W

1472:

00105B[

-

(二)分析:

对于div指令,注意其用法是ax除以单个字节数据时,商自动存入al,余数送存到ah。

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

实验项目名称:

汇编程序设计1

实验日期:

2014/4/25实验成绩:

实验评定标准:

1)实验结果及分析是否合理

A()B()C()

2)实验程序流程图是否正确

A()B()C()

3)实验报告是否按照规定格式

A()B()C()

一、实验目的

1.熟悉汇编语言程序上机的一般过程和方法。

2.掌握宏汇编程序MASM5.1和链接LINK3.6的使用方法。

3.学会使用loop。

二、实验器材

电脑一台(带有命令提示符)

三、实验内容

在屏幕上显示26个大写英文字母

四、实验程序流程图

(一)试验程序:

.modelsmall

.code

start:

movax,_text

movds,ax

leadx,mess;取提示字符串首地址

movah,09h

int21h

movcx,26;用于loop检验循环条件的次数,此处为英文字母个数

movdl,41h;41h,即‘A’的ASCII码

lp:

movah,02h;显示器显示一个字符

int21h

incdl;从‘A’的ASCII码递增

looplp

movah,4ch

int21h

messdb"26Englishletters:

",0dh,0ah,24h

endstart

(二)流程图:

 

N

Y

五、实验结果及分析

(一)结果:

E:

\test\test4>test4

26Englishletters:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

(二)分析:

每次循环显示前先检测计数值cx是否为零,不为零,则依次显示地震后的字母。

 

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

实验项目名称:

汇编程序设计2

实验日期:

2014/5/2实验成绩:

实验评定标准:

1)实验结果及分析是否合理

A()B()C()

2)实验程序流程图是否正确

A()B()C()

3)实验报告是否按照规定格式

A()B()C()

一、实验目的

1.熟悉汇编语言程序上机的一般过程和方法。

二、实验器材

电脑一台(带有命令提示符)

三、实验内容

分支程序设计:

给定符号函数,给定x任意值,假定为-25,且存放在x单元,函数值y存放在y单元,根据x的值确定函数y的值。

四、实验程序流程图

(一)试验程序:

.model

.data

xdb25;此处选择一个正数,那么屏幕将显示“+1”

ydw?

.code

mainprocfar

start:

pushds

movax,0

pushax

movax,_data

movds,ax

moval,x;al<==x

cmpal,0

jgeloop1;x0转loop1

moval,2dh;否则将字符‘-’负号送入y单元低字节

movbyteptry,al

movdl,byteptry;显示字符‘-’,即负号

movah,02h

int21h

movdl,31h;显示字符‘1’

movah,02h

int21h

moval,0ffh

movbyteptry+1,al;把-1的补码存入y单元的高字节地址

jmpnext;直接跳转到最后,程序结束

loop1:

jeloop2;x=0时转loop2

moval,2bh;否则将字符‘+’保存到y单元低地址且显示出来

movbyteptry,al

movdl,byteptry

movah,02h

int21h

moval,1;把1送入y单元高地址

movbyteptry+1,al

movdl,byteptry+1

adddl,30h;显示字符‘1’

movah,02h

int21h

jmpnext

loop2:

moval,0;将0送入y单元

movbyteptry,al

movdl,byteptry

moval,0

movbyteptry+1,al

movdl,byteptry+1

adddl,30h;显示字符‘0’

movah,02h

int21h

next:

ret

mainendp

endstart

(二)

(三)流程图:

(四)

 

五、实验结果及分析

(一)结果:

E:

\test\test5>test5

+1

E:

\test\test5>debugtest5.exe

-g

+1

Programterminatednormally

-u

1471:

00001EPUSHDS

1471:

0001B80000MOVAX,0000

1471:

000450PUSHAX

1471:

0005B87714MOVAX,1477

1471:

00088ED8MOVDS,AX

1471:

000AA00800MOVAL,[0008]

1471:

000D3C00CMPAL,00

1471:

000F7D1BJGE002C

1471:

0011B02DMOVAL,2D

1471:

0013A20900MOV[0009],AL

1471:

00168A160900MOVDL,[0009]

1471:

001AB402MOVAH,02

1471:

001CCD21INT21

1471:

001EB231MOVDL,31

-d1477:

0809

1477:

0000192B.+

(二)分析:

本程序添加了显示功能,较教材有所改进。

 

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

实验项目名称:

汇编程序设计3

实验日期:

2014/5/9实验成绩:

实验评定标准:

1)实验结果及分析是否合理

A()B()C()

2)实验程序流程图是否正确

A()B()C()

3)实验报告是否按照规定格式

A()B()C()

一、实验目的

1.熟悉汇编语言程序上机的一般过程和方法。

2.掌握宏汇编程序MASM5.1和链接LINK3.6的使用方法。

3.了解DEBUG调试汇编语言程序的过程及方法。

二、实验器材

电脑一台(带有命令提示符)

三、实验内容

从xx单元开始的30个连续单元中存放有30个无符号数,从中找出找出最大者送入yy单元中。

四、实验程序流程图

(一)试验程序:

.modelsmall

.data

xxdb73,59,61,45,81

db107,37,25,14,64

db3,17,9,23,55,97

db115,78,121,67

db215,137,99,241

db36,58,87,100,74,62;其中最大的数应该是F1h,即241

yydb?

.code

mainprocfar

start:

pushds

movax,0

pushax

movax,_data

movds,ax

moval,xx

movsi,offsetxx

movcx,29

loop1:

incsi

cmpal,[si]

jaeloop2

xchgal,[si]

loop2:

looploop1

movyy,al

ret

mainendp

endstart

(二)流程图:

 

Y

 

N

Y

 

五、实验结果及分析

(一)结果:

E:

\test\test7>debugtest7

Filenotfound

-q

E:

\test\test7>debugtest7.exe

-g

Programterminatednormally

-u

1471:

00001EPUSHDS

1471:

0001B80000MOVAX,0000

1471:

000450PUSHAX

1471:

0005B87314MOVAX,1473

1471:

00088ED8MOVDS,AX

1471:

000AA00000MOVAL,[0000]

1471:

000DBE0000MOVSI,0000

1471:

0010B91D00MOVCX,001D

1471:

001346INCSI

1471:

00143A04CMPAL,[SI]

1471:

00167302JNB001A

1471:

00188604XCHGAL,[SI]

1471:

001AE2F7LOOP0013

1471:

001CA21E00MOV[001E],AL

1471:

001FCBRETF

-d1473:

001e

1473:

0000493B3D2D49512519-0E40031109173761I;=-IQ%..@....7a

1473:

00106B4E7343798963D7-243A57644A3EF1kNsCy.c.$:

WdJ>.

进入调试,而没有执行‘g’命令时,内存单元储存的数据如下:

E:

\test\test7>debugtest7.exe

-d1473:

001e

1473:

0000493B3D2D516B2519-0E40031109173761I;=-Qk%..@....7a

1473:

0010734E7943D78963F1-243A57644A3E00sNyC..c.$:

WdJ>.

(二)分析:

该程序命令执行单步运行应该用‘t’,而不是用‘p’

 

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

实验项目名称:

硬件控制实验

实验日期:

2014/5/16实验成绩:

实验评定标准:

1)实验结果及分析是否合理

A()B()C()

2)实验程序流程图是否正确

A()B()C()

3)实验报告是否按照规定格式

A()B()C()

一、实验目的

1.掌握宏汇编程序MASM5.1和链接LINK3.6的使用方法。

2.了解DEBUG调试汇编语言程序的过程及方法。

二、实验器材

电脑一台(带有命令提示符)

三、实验内容

利用DOS系统实现人机对话:

在屏幕上显示并键入一行信息。

四、实验程序流程图

(一)试验程序:

.model

.data

parsdb100;定义输入缓冲区

db?

db100dup('$')

mesgdb"whatisyourname?

",0dh,0ah,24h;要显示的提示信息

.stack

db100dup(?

.code

startprocfar

begin:

pushds

movax,0

pushax

movax,_data

movds,ax

disp:

movdx,offsetmesg

movah,9;利用9号功能调用显示提示

int21h

keybd:

movdx,offsetpars

movah,10;利用10号功能调用接收键盘输入

int21h

movah,02h

movdl,0dh;与下面的程序构成换行的功能

int21h

movah,02h

movdl,0ah;与上面的程序构成换行的功能

int21h

leadx,pars+2

movah,09h

int21h

ret

startendp

endbegin

(二)流程图:

 

 

五、实验结果及分析

(一)结果:

E:

\test\test8>test8

whatisyourname?

abcdefghijklmnopqrstuvwxyz,.<>/?

;'\:

"|[]{}-=_+!

@#$%^&*()1234567890

abcdefghijklmnopqrstuvwxyz,.<>/?

;'\:

"|[]{}-=_+!

@#

E:

\test\test8>test8

whatisyourname?

asfhjkfhqiuytrihnlgvnzxcbldpqk\gd]qomg'a!

@#%^&**()()*(+_+0231465498752.242349.

asfhjkfhqiuytrihnlgvnzxcbldpqk\gd]qomg'a!

@#%^&**()()*(+_+0231465498752.242349.

E:

\test\test8>

(三)分析:

上面程序两次运行的结果有所不同,原因是int21h中断的9号功能是“显示器显示一个以‘$’为结束标志的字符窜”。

 

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

当前位置:首页 > 经管营销 > 经济市场

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

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