微机原理循环设计实验报告Word文档格式.docx
- 文档编号:13368808
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:10
- 大小:161.83KB
微机原理循环设计实验报告Word文档格式.docx
《微机原理循环设计实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理循环设计实验报告Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
DATASEGMENT
INF1DB"
Pleaseinputanumber(0-65535):
$"
IBUFDB7,0,6DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETINF1
MOVAH,09H
INT21H
MOVDX,OFFSETIBUF;
键入一个十进制数(<
65535)
MOVAH,0AH
INT21H
MOVCL,IBUF+1;
十进制数的位数送CX
MOVCH,0
MOVSI,OFFSETIBUF+2;
指向输入的第一个字符(最高位)
MOVAX,0;
开始将十进制数转换为二进制数
AGAIN:
MOVDX,10;
((010+a4)10+…)10+a0
MULDX
ANDBYTEPTR[SI],0FH
ADDAL,[SI]
ADCAH,0
INCSI
LOOPAGAIN
MOVAH,4CH
CODEENDS
ENDSTART
本程序功能:
从键盘接收一个无符号十进制整数(小于65535),将其转换为二进制数,转换结果存在AX寄存器中。
(2)累加结果为一个16位的二进制数,为了显示结果,必需把它们转换为十进制数。
将二进制数转换为十进制数的程序清单如下:
DATASEGMENT
OBUFDB6DUP(?
DATAENDS
CODESEGMENT
ASSUMECS:
DATA
MOVDS,AX
MOVBX,OFFSETOBUF+5
MOVBYTEPTR[BX],'
$'
MOVCX,10;
做(DX):
(AX)/10运算
LOOP1:
MOVDX,0;
被除数高16位清0
DIVCX
ADDDL,30H;
将DL中的一位十进制数转换为ASCII码
DECBX
MOV[BX],DL
ORAX,AX
JNZLOOP1
;
判断商是否为0,不为0继续
MOVDX,BX
MOVAH,09H
INT21H
显示转换得到的十进制数
INT21H
ENDSTART
本程序功能:
将存储在AX寄存器中的二进制数转换为十进制数并显示。
2、
流程图及程序框架
(1)流程图
(2)程序框架
INF1DB"
IBUFDB7,0,6DUP(?
OBUFDB6DUP(?
CODESEGMENT
接收从键盘输入的十进制数,并将其转换为二进制数(存AX寄存器)的指令序列
MOVCX,AX
MOVAX,0
MOVBX,1
LOOP2:
ADDAX,BX
INCBX
将AX中存放的二进制数转换为十进制数并显示的指令序列
LOOPLOOP2
CODEENDS
3、完整源程序代码
INF1DB"
Pleaseinputanumber(0-65535):
IBUFDB7,0,6DUP(?
OBUFDB6DUP(?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETINF1
MOVAH,09H
INT21H
MOVDX,OFFSETIBUF
MOVAH,0AH
MOVCL,IBUF+1
MOVCH,0
MOVSI,OFFSETIBUF+2
MOVAX,0
AGAIN:
MOVDX,10
MULDX
ANDBYTEPTR[SI],0FH
ADDAL,[SI]
ADCAH,0
INCSI
LOOPAGAIN
MOVCX,AX
MOVBX,1
LOOP2:
ADDAX,BX
INCBX
MOVBX,OFFSETOBUF+5
MOVBYTEPTR[BX],'
MOVCX,0AH
LOOP1:
MOVDX,0
DIVCX
ADDDL,30H
DECBX
MOV[BX],DL
ORAX,AX
JNZLOOP1
MOVDL,0AH
MOVAH,02H
MOVDX,BX
MOVAH,4CH
CODEENDS
ENDSTART
实验截图:
四、实验习题
1、从自然数1开始累加,直到累加和大于60000为止,显示累加的自然数的个数和累加和。
显示格式为:
1+2+…+n=sum
其中n为累加个数,sum为累加和。
datasegment
obufdb6dup(?
eudb'
+'
'
ebdb0dh,'
='
0dh,'
dataends
displaymacrostring
movdx,offsetstring
movah,09h
int21h
endm
codesegment
mainprocfar
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movax,1
movcx,0
loop1:
adccx,ax
cmpax,1
jeall
pushax
displayeu
popax
all:
callexchange
incax
cmpcx,60000
jcloop1
pushcx
displayeb
movax,cx
callexchange
popcx
movah,4ch
int21h
ret
mainendp
exchangeprocnear
pushax
pushbx
pushcx
movbx,offsetobuf+5
movbyteptr[bx],'
movcx,10
loop2:
movdx,0
divcx
adddl,30h
decbx
mov[bx],dl
orax,ax
jnzloop2
movdx,bx
popcx
popbx
popax
ret
exchangeendp
codeends
endstart
2、从键盘输入6个加数N1、N2、N3、N4、N5和N6(均为14位的无符号十进制整数),求和并将计算结果在屏幕上显示出来。
3、从键盘输入一个无符号十进制整数(小于65536),将其转换为二进制数,统计该二进制数中包含的1的个数,并将统计结果在屏幕上显示出来。
4、从键盘输入N个无符号十进制整数(小于256),将其转换为二进制数后存放在字节变量BUF存储区中;
对这N个数进行由大到小排序,排序后将其仍存储在BUF中;
最后将排序后的结果在屏幕上显示出来。
(说明,以上习题任选一道题,附上流程图及源程序代码,然后把其他的两道题删掉)
五、实验小结
这次实验虽然难度不大,但在做的过程中也遇到了不少困难,有些错误不容易找出来,必须仔细的看和修改,所以要求我们养成良好的编码风格和习惯,尤其是源程序很长的时候,这就显得尤为重要。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 循环 设计 实验 报告