微机原理与汇编语言实验循环程序设计实验Word下载.docx
- 文档编号:14281802
- 上传时间:2022-10-21
- 格式:DOCX
- 页数:17
- 大小:134.77KB
微机原理与汇编语言实验循环程序设计实验Word下载.docx
《微机原理与汇编语言实验循环程序设计实验Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理与汇编语言实验循环程序设计实验Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
二、实验内容
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 汇编语言 实验 循环 程序设计