您好,欢迎访问三七文档
微机原理与接口技术两个数相乘的实验一.实验要求实现十进制数的乘法,被乘数和乘数均以ASCII码形式存放在内存中,算式结果在屏幕上显示出来。二.实验目的掌握乘法指令和循环指令的用法。微机原理与接口技术三实验流程乘数━BL计数值-1=0BL的数转化为十六进制数被乘数(SI)单元与BL相乘DI+1指向下一个单元,进位━(DI)SI指向乘数AMM调整DI指向结果区(预清零)结果━(DI)设置计数值显示结果开始结束YN微机原理与接口技术四实验程序DATASEGMENT;定义数据段DATA1DB32H,39H,30H,35H,34H;用ASCII码表示被乘数45092DATA2DB34H;DB伪指令,用来定义字节类型的伪变量,乘数4MES1DB'*','$'MES2DB'=','$'RESULTDB6DUP(00H)DATAENDSSTACKSEGMENT;定义堆栈段STADB20DUP(?);为变量STA分配20个字节的空间TOPEQULENGTHSTASTACKENDS微机原理与接口技术CODESEGMENT;定义代码段ASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,TOPLEASI,DATA1;被乘数首地址送SIMOVBX,05HL1:MOVAH,02H;DOS功能号02H送AHMOVDL,[SI+BX-1];被乘数送DLINT21H;DOS功能号调用(显示器输出)微机原理与接口技术DECBXJNZL1MOVAH,09H;DOS功能号09H送AHLEADX,MES1;MES1的偏移地址送DXINT21H;DOS功能号调用(显示字符串)LEASI,DATA2;乘数地址送SIMOVAH,02HMOVDL,[SI];乘数送DLINT21H;显示乘数MOVAH,09HLEADX,MES2;MES2的偏移地址送DXINT21HMOVSI,OFFSETDATA2;显示算式微机原理与接口技术MOVBL,[SI];乘数送BLANDBL,00001111B;屏蔽乘数高4位;ASCII码转换为十六进制MOVSI,OFFSETDATA1;;被乘数偏移地址送SIMOVDI,OFFSETRESULT;运算结果偏移地址送DIMOVCX,05LOOP1:MOVAL,[SI];被乘数送ALANDAL,00001111B;屏蔽被乘数高4位;ASCII码转换为十六进制INCSIMULBL;AL*BL送AXAAM;乘法十进制调整ADDAL,[DI];结果低位与前次计算的进位相加AAA;非压缩BCD码加法十进制调整指令微机原理与接口技术MOV[DI],AL;结果AL送DIINCDIMOV[DI],AH;结果AH送DI+1LOOPLOOP1MOVCX,06MOVSI,DIDISPL:MOVAH,02HMOVDL,[SI]ADDDL,30HINT21HDECSILOOPDISPL;显示运算结果微机原理与接口技术MOVAX,4C00H;返回DOSINT21H;结束CODEENDSENDSTARTC:\hk88te\88asmdebugxh1.exe-g45092*4=180368微机原理与接口技术双击桌面图标HK88系列实验调试图标进入HK88系列实验调试系统界面单击文件-新建-输入两数相乘程序单击文件-另存为-输入文件名选择路径为:C:\hk88te\88asm单击编译-编译并连接如程序有错误则需要改正进入Windows界面单击程序-附件-命令提示符C:\C:\Documents\andsttings\Administrator微机原理与接口技术C:\Documents\andsttings\Administratorcd\C:\>C:\>cdhk88te\88asmC:\hk88te\88asmdebug20051088.exe-g45092*4=180368-qC:\C:\exit返回Windows微机原理与接口技术微机原理与接口技术微机原理与接口技术微机原理与接口技术微机原理与接口技术微机原理与接口技术微机原理与接口技术微机原理与接口技术
本文标题:两个数相乘的实验
链接地址:https://www.777doc.com/doc-4193857 .html