微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx

上传人:b****2 文档编号:4600330 上传时间:2023-05-03 格式:DOCX 页数:23 大小:78.25KB
下载 相关 举报
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第1页
第1页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第2页
第2页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第3页
第3页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第4页
第4页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第5页
第5页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第6页
第6页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第7页
第7页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第8页
第8页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第9页
第9页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第10页
第10页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第11页
第11页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第12页
第12页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第13页
第13页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第14页
第14页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第15页
第15页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第16页
第16页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第17页
第17页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第18页
第18页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第19页
第19页 / 共23页
微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx

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

微机接口技术课程设计汇编语言开发环境认识Word格式文档下载.docx

code,ds:

data;

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

start:

movax,data;

ds<

==数据段地址

movds,ax

leadx,message;

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

movah,09h;

调用9号功能显示字符串

int21h

movah,4ch;

非标准方式返回DOS

codeends

endstart

(二)流程图:

五、实验结果及分析

(一)结果:

C:

\Users\Administrator>

e:

E:

\>

cdtest

\test>

cdtest1

\test\test1>

test1

Howdoyoudo.

(二)分析:

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

(2)

Debug程序调试实验

2014/4/11实验成绩:

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

dsegsegment

xxxdw1234h;

设X为1234H

yyydw5678h;

设Y为5678H

zzzdd?

双自变量,用于保存结果

dsegends

csegsegment'

CODE'

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

cseg,ds:

dseg

movax,dseg;

DS<

movds,ax

movax,xxx;

AX<

==X

xordx,dx

movcx,16

mulcx;

DX|AX<

==X*16

addax,yyy;

==DX|AX+Y

adcdx,0

movwordptrzzz,ax;

zzz,<

==DX|AX

movwordptrzzz+2,dx

movah,4ch

csegends

\test\test2>

debugtest2.exe

-g

Programterminatednormally

-u

1472:

0000B87114MOVAX,1471

00038ED8MOVDS,AX

0005A10000MOVAX,[0000]

000833D2XORDX,DX

000AB91000MOVCX,0010

000DF7E1MULCX

000F03060200ADDAX,[0002]

001383D200ADCDX,+00

0016A30400MOV[0004],AX

001989160600MOV[0006],DX

001DB44CMOVAH,4C

001FCD21INT21

-d1471:

00000007

1471:

000034127856B87901004.xV.y..

-

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

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

简单汇编语言设计实验

2014/4/18实验成绩:

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

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

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

.modelsmall

.data

xdb95;

等于十六进制数5Fh

ydb87;

等于十六进制数57h

zdb?

.code

mainprocfar

pushds

movax,0

pushax

movax,_data;

取数据段地址放入ds

moval,x;

第一个数送入al

addal,y;

两数相加,结果送入al

movah,0;

带进位加法,进位送入ah

adcah,0

movbl,2;

除数2送bl

divbl;

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

movz,al;

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

ret

mainendp

\test\test3>

debugtest3.exe

00001EPUSHDS

0001B80000MOVAX,0000

000450PUSHAX

0005B87214MOVAX,1472

00088ED8MOVDS,AX

000AA00E00MOVAL,[000E]

000D02060F00ADDAL,[000F]

0011B400MOVAH,00

001380D400ADCAH,00

0016B302MOVBL,02

0018F6F3DIVBL

001AA21000MOV[0010],AL

001DCBRETF

001E5FPOPDI

001F57PUSHDI

-d1472:

0E10

00005F57_W

00105B[

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

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

汇编程序设计1

2014/4/25实验成绩:

3.学会使用loop。

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

.modelsmall

movax,_text

leadx,mess;

取提示字符串首地址

movah,09h

movcx,26;

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

movdl,41h;

41h,即‘A’的ASCII码

lp:

movah,02h;

显示器显示一个字符

incdl;

从‘A’的ASCII码递增

looplp

messdb"

26Englishletters:

"

0dh,0ah,24h

endstart

N

Y

\test\test4>

test4

ABCDEFGHIJKLMNOPQRSTUVWXYZ

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

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

汇编程序设计2

2014/5/2实验成绩:

分支程序设计:

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

.model

xdb25;

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

ydw?

movax,_data

moval,x;

al<

==x

cmpal,0

jgeloop1;

x0转loop1

moval,2dh;

否则将字符‘-’负号送入y单元低字节

movbyteptry,al

movdl,byteptry;

显示字符‘-’,即负号

movah,02h

movdl,31h;

显示字符‘1’

moval,0ffh

movbyteptry+1,al;

把-1的补码存入y单元的高字节地址

jmpnext;

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

loop1:

jeloop2;

x=0时转loop2

moval,2bh;

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

movdl,byteptry

moval,1;

把1送入y单元高地址

movbyteptry+1,al

movdl,byteptry+1

adddl,30h;

jmpnext

loop2:

moval,0;

将0送入y单元

moval,0

显示字符‘0’

next:

(二)

(三)流程图:

(四)

\test\test5>

test5

+1

debugtest5.exe

0005B87714MOVAX,1477

000AA00800MOVAL,[0008]

000D3C00CMPAL,00

000F7D1BJGE002C

0011B02DMOVAL,2D

0013A20900MOV[0009],AL

00168A160900MOVDL,[0009]

001AB402MOVAH,02

001CCD21INT21

001EB231MOVDL,31

-d1477:

0809

1477:

0000192B.+

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

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

汇编程序设计3

2014/5/9实验成绩:

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

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?

pushds

moval,xx

movsi,offsetxx

movcx,29

incsi

cmpal,[si]

jaeloop2

xchgal,[si]

looploop1

movyy,al

N

Y

\test\test7>

debugtest7

Filenotfound

-q

debugtest7.exe

0005B87314MOVAX,1473

000AA00000MOVAL,[0000]

000DBE0000MOVSI,0000

0010B91D00MOVCX,001D

001346INCSI

00143A04CMPAL,[SI]

00167302JNB001A

00188604XCHGAL,[SI]

001AE2F7LOOP0013

001CA21E00MOV[001E],AL

001FCBRETF

-d1473:

001e

1473:

0000493B3D2D49512519-0E40031109173761I;

=-IQ%..@....7a

00106B4E7343798963D7-243A57644A3EF1kNsCy.c.$:

WdJ>

.

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

0000493B3D2D516B2519-0E40031109173761I;

=-Qk%..@....7a

0010734E7943D78963F1-243A57644A3E00sNyC..c.$:

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

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

硬件控制实验

2014/5/16实验成绩:

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

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

.model

parsdb100;

定义输入缓冲区

db?

db100dup('

$'

mesgdb"

whatisyourname?

0dh,0ah,24h;

要显示的提示信息

.stack

db100dup(?

startprocfar

begin:

disp:

movdx,offsetmesg

movah,9;

利用9号功能调用显示提示

keybd:

movdx,offsetpars

movah,10;

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

movdl,0dh;

与下面的程序构成换行的功能

movdl,0ah;

与上面的程序构成换行的功能

leadx,pars+2

startendp

endbegin

\test\test8>

test8

abcdefghijklmnopqrstuvwxyz,.<

>

/?

;

'

\:

|[]{}-=_+!

@#$%^&

*()1234567890

#@E:

asfhjkfhqiuytrihnlgvnzxcbldpqk\gd]qomg'

a!

@#%^&

**()()*(+_+0231465498752.242349.

(三)分析:

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

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

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2