资源描述:
《实验一 两个多位十进制数相加实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。二、实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。三、程序框图图3-1四、参考程序清单DATASEGMENTDATA1DB33H,39H,31H,37H,34H;被加数DATA1ENDEQU$-1DATA2DB34H,35H,30H,38H,32H;加数DATA2ENDEQU$-1SUMDB5DU
2、P(?)DATAENDSSTACKSEGMENTSTADB20DUP(?)TOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXMOVSI,OFFSETDATA1ENDMOVDI,OFFSETDATA2ENDCALLADDAMOVAX,4C00HINT21HADDAPROCNEARMOVDX,SIMOVBP,DIMOVBX,05HAD1:
3、SUBBYTEPTR[SI],30HSUBBYTEPTR[DI],30HDECSIDECDIDECBXJNZAD1MOVSI,DXMOVDI,BPMOVCX,05HCLCAD2:MOVAL,[SI]MOVBL,[DI]ADCAL,BLAAAMOV[SI],ALDECSIDECDILOOPAD2MOVSI,DXMOVDI,BPMOVBX,05HAD3:ADDBYTEPTR[SI],30HADDBYTEPTR[DI],30HDECSIDECDIDECBXJNZAD3RETADDAENDPCODEENDSENDSTART实验结果如图:结果分析:两个数相
4、加后结果放在内存中DS:0000处,且结果应给为84256,实验结果与理论分析一致。实验二排序实验一、实验目的掌握用汇编语言编写排序程序的思路和方法。二、实验内容将指定内存出开始的数据(最多为4位数)按从大到小的顺序排列。第一个数字表示数据的个数(不是要比较的数值!!!)。三、程序流程图图3-2四、程序清单DATASEGMENTADDRDW8,234,35,67,876,54,39,765,237DATAENDSSTACKSEGMENTSTADW32DUP(?)TOPDW?STACKENDSCODESEGMENTASSUMECS:CODE,DS:
5、DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXMOVSP,TOPMOVCX,WORDPTRADDR[0]DECCXLOOP1:MOVDI,CXMOVBX,2LOOP2:MOVAX,WORDPTRADDR[BX]CMPAX,WORDPTRADDR[BX+2]JGECCCXCHGAX,WORDPTRADDR[BX+2]MOVWORDPTRADDR[BX],AXCCC:ADDBX,2LOOPLOOP2MOVCX,DILOOPLOOP1EXIT:MOVAX,
6、4C00HINT21HCODEENDSENDSTART实验结果如图:结果分析:此程序实现的是八个数据的排序,用了一个循环,首先第一个数与第二个数相比较,然后第三个数再与第一第二个数分别比较,依次类推,最终得到如图所示结果。实验三自编程序上机调试一、实验目的掌握用汇编语言编写排序程序的思路和方法。二、实验内容datasegmentxdw600ydw25zdw-2000sdw?dataendscodesegmentassumeds:data,cs:codestart:movax,datamovds,axmovax,xmovbx,ymulbxmovbx
7、,59D8Haddax,zsubbx,axmovax,bxmovbx,zidivbxmovs,axmovah,4cHint21Hcodeendsendstart实验结果如图:结果分析结果应该为-5,即FFFGB。实验四8255并行I/O口实验一、实验要求利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输入,PB口作输出。二、实验目的1、了解8255芯片结构及编程方法。2、了解8255输入/输出实验方法。三、预备知识8255是Intel公司生产的与Intel8080/8085系列的MPU配套的可编程外围接口电路,简称PPI
8、。它有A、B、C三个八位端口寄存器,通过24位端口线与外部设备相连,基中C口可分为上半部和下半部。这24根端口线全部为双向三态。三个端口