实验四10505038吴逸飞.docx

上传人:b****6 文档编号:7106678 上传时间:2023-01-17 格式:DOCX 页数:16 大小:56.11KB
下载 相关 举报
实验四10505038吴逸飞.docx_第1页
第1页 / 共16页
实验四10505038吴逸飞.docx_第2页
第2页 / 共16页
实验四10505038吴逸飞.docx_第3页
第3页 / 共16页
实验四10505038吴逸飞.docx_第4页
第4页 / 共16页
实验四10505038吴逸飞.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

实验四10505038吴逸飞.docx

《实验四10505038吴逸飞.docx》由会员分享,可在线阅读,更多相关《实验四10505038吴逸飞.docx(16页珍藏版)》请在冰豆网上搜索。

实验四10505038吴逸飞.docx

实验四实验四10505038吴逸飞吴逸飞实验报告四课程微机原理实验名称循环和分支程序设计第页专业电子信息班级_9_学号_:

105052012038_姓名:

吴逸飞实验日期:

2014年3月29日报告退发(订正、重做)一、实验目的1.进一步熟悉上机操作.2进一步熟悉DEBUG调试程序.3.学习循环和分支程序设计二、实验内容.编制程序实现将一位十六进制数转化为对应ASCII码;assumecs:

code,ds:

datadatasegmentddbInputanumberofhex,10,13,$fdb4,?

dataendscodesegmentstart:

movax,datamovds,axmovdx,offsetdmovah,9int21h;输出提示movah,01hint21h;输入字符pushaxmovdl,0ahmovah,02hint21hmovdl,0dhmovah,02hint21hpopax;换行回车movah,00cmpax,60hjahacmpax,40hjahbpushaxmovdl,33hmovah,02hint21hpopaxmovdl,almovah,02hint21hjmphc;输出09的ASCII码ha:

pushaxmovdl,36hmovah,02hint21hpopaxsubal,30hmovdl,almovah,02hint21hjmphc;输出AF的ASCII码hb:

pushaxmovdl,34hmovah,02hint21hpopaxsubal,10hmovdl,almovah,02hint21hjmphc;输出af的ASCII码hc:

movah,4chint21hcodeendsendstart2.分类统计字数组中正数、负数和零的个数;ASSUMECS:

CODE,DS:

DATA;只适合-128127的数值符号判断DATASEGMENTADB0BDB0CDB0DDB1,0,-1,0,-1,0,-7,0FDBEQUALPOSITIVE-NUMBERNEGATIVE-NUMBER$DATAENDSCODESEGMENTSTART:

MOVAX,#DATAMOVDS,AXMOVSI,00HMOVCX,08HS:

CMPDSI,00HJZLA;等于零跳转CMPDSI,80HJALC;小于零跳转INCBJMPLHLA:

INCAJMPLHLC:

INCCJMPLHLH:

NOPINCSILOOPSMOVDX,OFFSETFMOVAH,09HINT21HMOVDL,AADDDL,30HMOVAH,02HINT21HMOVDL,00HMOVAH,02HINT21HMOVDL,BADDDL,30HMOVAH,02HINT21HMOVDL,00HMOVAH,02HINT21HMOVDL,CADDDL,30HMOVAH,02HINT21HMOVAH,4CHINT21HCODEENDSENDSTART.编写码制转换程序。

(1)ASCII码到十进制数(BCD)的转换若有一输入的ASCII码串(长度在串中的第一个字节),将其中的数码取出,转换为未组合的BCD码,放至另一缓冲区中,并统计数码串的长度,放入此缓冲区的第一个字节。

ASSUMECS:

CODE,DS:

DATADATASEGMENTADBInputasentenceconsistingof9words$FDBThenumberofnum:

$CDW0,0,0,0,0,0,0,0,0,0BDB22,?

DATAENDSCODESEGMENTSTART:

MOVAX,#DATAMOVDS,AXMOVDX,OFFSETAMOVAH,09HINT21HMOVDL,0AHMOVAH,02HINT21HMOVDL,0DHMOVAH,02HINT21H;换行回车MOVDX,OFFSETBMOVAH,0AHINT21H;输入10个字符MOVDL,0AHMOVAH,02HINT21HMOVDL,0DHMOVAH,02HINT21H;换行回车MOVCX,9MOVSI,02HMOVDI,02HMOVDL,00HHA:

CMPBSI,30HJAHBJMPHDHB:

CMPBSI,39HJLEHCJMPHDHC:

CALLPROCEHD:

INCSILOOPHAPUSHDXMOVDX,OFFSETFMOVAH,09HINT21HPOPDXADDDL,30HMOVAH,02HINT21H;9个字符中数字的个数MOVAH,4CHINT21HPROCE:

MOVAL,BSISUBAL,30HMOVAH,03HMOVCDI,AXINCDIINCDIINCCINCDLRETCODEENDSENDSTART

(2)将BCD码转换为二进制若有一个位存储单元,存放位BCD数,将它转换为二进制,放至另一存储单元。

BCD转换为二进制数,常用的有两种方法。

方法1:

(千位数*10+百位数)*10+十位数)*10+个位数ASSUMECS:

CODE,DS:

DATADATASEGMENTADW4321HCDW0DATAENDSCODESEGMENTSTART:

MOVAX,#DATAMOVDS,AXMOVBX,AANDBX,0F000HMOVAX,BXMOVBX,1000HDIVBXMOVBX,0AHMULBXPUSHAXMOVBX,AANDBX,0F00HMOVAX,BXMOVBX,100HDIVBXMOVCX,AXPOPAXADDAX,CXMOVBX,0AHMULBXPUSHAXMOVBX,AANDBX,00F0HMOVAX,BXMOVBX,10HDIVBXMOVCX,AXPOPAXADDAX,CXMOVBX,0AHMULBXPUSHAXMOVBX,AANDBX,000FHMOVCX,BXPOPAXADDAX,CXMOVC,AXMOVAH,4CHINT21HCODEENDSENDSTART方法2:

用千位数控制加1000的次数,用百位数、十位数控制加100,加10的次数,最后与个数相加。

分别用这两种方法编写程序。

ASSUMECS:

CODE,DS:

DATADATASEGMENTADW4321HBDW0DATAENDSCODESEGMENTSTART:

MOVAX,#DATAMOVDS,AXMOVBX,AANDBX,000FHMOVCX,BXMOVAX,00HCLCLA:

ADCAX,01LOOPLAPUSHAX;个位相加MOVBX,AANDBX,00F0HMOVAX,BXMOVBX,10HDIVBXMOVCX,AXMOVAX,0CLCLB:

ADCAX,0AHLOOPLBPUSHAX;十位相加MOVBX,AANDBX,0F00HMOVAX,BXMOVBX,100HDIVBXMOVCX,AXMOVAX,0CLCLC:

ADCAX,64HLOOPLCPUSHAX;百位相加MOVBX,AANDBX,0F000HMOVAX,BXMOVBX,1000HDIVBXMOVCX,AXMOVAX,0CLCLD:

ADCAX,3E8HLOOPLD;千位相加CLCMOVCX,03HHA:

POPBXADDAX,BXLOOPHAMOVB,AXMOVAH,4CHINT21HCODEENDSENDSTART4.用冒泡排序法实现数组按从大到小排序。

ASSUMECS:

CODE,DS:

DATADATASEGMENTADB1,2,3,4,5,6,7,8DATAENDSCODESEGMENTSTART:

MOVAX,#DATAMOVDS,AXMOVDI,00HMOVCX,08HS:

MOVAL,ADIPUSHCXMOVSI,DIINCSIHB:

CMPAL,ASIJAHSMOVBL,ASIMOVASI,ALMOVAL,BLMOVADI,ALHS:

INCSILOOPHBPOPCXINCDILOOPSMOVAH,4CHINT21HCODEENDSENDSTART四、小结

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

当前位置:首页 > 初中教育 > 学科竞赛

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

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