微机原理与汇编语言实验循环程序设计实验Word下载.docx

上传人:b****1 文档编号:14281802 上传时间:2022-10-21 格式:DOCX 页数:17 大小:134.77KB
下载 相关 举报
微机原理与汇编语言实验循环程序设计实验Word下载.docx_第1页
第1页 / 共17页
微机原理与汇编语言实验循环程序设计实验Word下载.docx_第2页
第2页 / 共17页
微机原理与汇编语言实验循环程序设计实验Word下载.docx_第3页
第3页 / 共17页
微机原理与汇编语言实验循环程序设计实验Word下载.docx_第4页
第4页 / 共17页
微机原理与汇编语言实验循环程序设计实验Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

微机原理与汇编语言实验循环程序设计实验Word下载.docx

《微机原理与汇编语言实验循环程序设计实验Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理与汇编语言实验循环程序设计实验Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

微机原理与汇编语言实验循环程序设计实验Word下载.docx

二、实验内容

1、实验原理

(1)键盘输入的十进制数如368在计算机中是以33H,36H,38H形式存放的,如何将它们转换为一个二进制数101110000B,以便对累加循环的循环次数进行控制是本程序首先要解决的问题

(2)累加结果为一个16位的二进制数,为了显示结果,必需把它们转换为十进制数

2、实验步骤

(1)流程图

(2)实验源码

.modelsmall

.stack;

定义堆栈段

.data;

定义数据段

inf1db"

Pleaseinputanumber(1-627):

$"

inf2db0ah,0dh,"

1+2+......+$"

ibufdb7,0,6dup(0)

obufdb6dup(0)

.code

start:

movax,@data

movds,ax

movdx,offsetinf1

;

将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax中

movah,09h

int21h

movdx,offsetibuf

movah,0Ah

movcl,ibuf+1

movch,0

movsi,offsetibuf+2

movax,0

loop1:

movdx,10

muldx

andbyteptr[si],0Fh

addal,[si]

adcah,0

incsi

looploop1

movcx,ax;

计算1+2+3+...+n

movax,0

movbx,1

loop2:

addax,bx

incbx

looploop2

movdi,offsetobuf+6;

将ax中的二进制数转换为十进制数并以ascii的形式存于obuf

movbyteptr[di],'

$'

movbx,10

loop3:

movdx,0

divbx

adddl,30h

decdi

mov[di],dl

orax,ax

jnzloop3

mov[di],'

='

movdx,offsetinf2;

结果输出

movah,09h

int21h

movcl,ibuf+1;

显示n

loop4:

movdl,[si]

adddl,30h

movah,02h

looploop4

movdx,di

movax,4c00h

int21h

endstart

实验习题1源码:

multi-segmentexecutablefiletemplate.

.modelsmall;

定义程序的存储模式(small表示小型模式)

inf1db0ah,0dh,"

obuf1db6dup(0)

obuf2db7dup(0);

除了六位数字外还要有一个=号

movds,ax

movdx,offsetinf1;

输出1+2+......+

int21h

movax,0;

cmpax,60000

jbeloop1

pushax;

将最终结果备份入栈

pushbx;

将n备份

popcx

movdi,offsetobuf1+5

将cx二进制数转换为十进制数并以ascii的形式存于obuf1

movax,cx

jnzloop2

movdx,di;

输出n

popax

movdi,offsetobuf2+6

将ax中的二进制数转换为十进制数并以ascii的形式存于obuf2

jnzloop3

=输出结果

实验习题2源码:

定义数据段

inf1db'

Pleaseinputsixnum:

'

0ah,0dh,'

inf2db'

sum:

obuf0db0ah,0dh,'

ibufdb5,0,4dup(0)

obufdb6dup(0)

输出提示信息

movbx,6;

设置外层循环次数

movdx,offsetibuf

movah,0Ah

设置内层循环次数

movch,0

movsi,offsetibuf+2

movdx,10;

andbyteptr[si],0Fh

looploop2

将结果入栈保存

movdx,offsetobuf0;

回车换行

decbx

cmpbx,0

jnzloop1

movcx,6

movax,0

popbx

looploop3

movdi,offsetobuf+5

jnzloop4

movax,4c00h

实验习题3源码:

infdb"

Pleaseinputanum(0-65535):

Thenumof1:

ibufdb6,0,5dup(0)

moves,ax

movah,09h;

输出提示信息Pleaseinputanum:

movdx,offsetinf

movah,0Ah;

接收一个无符号十进制整数(小于65536)

movcl,ibuf+1;

muldx

andbyteptr[si],0Fh

addal,[si]

adcah,0

incsi

looploop1

movbx,0

shrax,1

adcbx,0

cmpax,0

jnzloop2

movax,bx

输出提示信息Thenumof1:

movdx,offsetinf2

将统计结果在屏幕上显示出来

实验习题4源码:

Nequ5

ibufdb4,0,3dup(0)

inf1

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

当前位置:首页 > 小学教育 > 数学

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

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