资源描述:
《汇编语言编程实验报告.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、汇编语言编程实验报告学号:姓名:成绩:目录一、实验一:...................................................错误!未定义书签。二、实验二:.................................................................................4三、实验三:.............................................................................
2、....8四、实验四:................................................................................10五、实验五:...................................................错误!未定义书签。六、实验六:................................................................................19七、汇编实验总结...
3、.....................................................................23-2-实验一一.实验题目【汇编语言补充作业T20】编写完整程序,利用DOS系统功能调用,从键盘输入一个字符串,并将该字符串从屏幕上换行后并输出。二.程序流程及思路实现字符串输入,需要分成三个步骤:1、在数据段中定义一个缓存区为存放字符串做准备;2、DOS系统功能调用0AH号子功能,(DS:DX)=输入缓冲区首址;3、在输入的字符串尾加上‘$’字符,以作为输出结束条件。实现
4、字符串输出,则需要注意的问题是:1、缓冲区第三个字节才开始存放输入的字符,前两个字节分别存放缓冲区长度和字符串实际字符数;2、输出回车换行可利用字符串:CRDB0AH,0DH,’$’。三.源程序清单DATASEGMENTNEQU50MAXLENDBN;缓冲区字符的最大长度ACTLENDB?;实际字符个数STRINGDBNDUP(?);字符空间CRDB0AH,0DH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,
5、AXLEADX,MAXLENMOVAH,0AHINT21H;字符串输入MOVAH,09HLEADX,CRINT21H;回车换行MOVBL,MAXLEN+1;取实际的字符长度MOVBH,0LEASI,MAXLEN+2;取字符开始的首地址-3-MOVBYTEPTR[SI+BX],'$';输出结尾要加上$MOVDX,SI;把开始存放字符的首地址赋给DXMOVAH,09HINT21HMOVAH,4CHINT21HCODEENDSENDSTART四.结果拷屏-4-实验二一.实验题目【汇编语言补充作业T23】假设CX:BX
6、中存放了4为非压缩的BCD码表示的十进制数4386,请编写完整程序将这个数转化成2进制数并存放到DI寄存器中。二.程序流程及思路首先,要解决以上问题需分三个步骤进行:1、将CX:BX中的非压缩BCD码调整成压缩BCD码。这有两种方法:a、利用非压缩BCD码调整指令AAD,达到以上目的;b、利用移位指令,将两个非压缩BCD码进行整合,达到以上目的;(注:以下程序采用b方法)2、将调整后的压缩BCD码转化为十进制数。调整后b3b2=43,b1b0=86。转化方法为b3b2*100+b1b0→DI。计算结果送入DI寄
7、存器中。由于100=64+32+4,因此考虑用移位指令进行BCD码的乘法运算。3、利用移位指令编写一段代码进行结果输出,以便于在屏幕上直接进行核对检验。三.源程序清单DATASEGMENTDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKstart:movch,04movcl,03movbh,08movbl,06;moval,chmovah,0shlax,1;ch位乘10(10=8+2)movsi,axshlax,1shlax,1addax,si;movch,0a
8、ddax,cx-5-movdx,ax;dx=43shldx,1shldx,1movax,dxshldx,1shldx,1shldx,1addax,dxshldx,1;adddx,ax;dx乘以100(100=64+32+4)moval,bhmovah,0movsi,0shlax,1;bh位乘10movsi,axshlax,1shlax,1addax,si;movbh,0addax,bx