资源描述:
《【tracy】汇编语言实验代码全》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、【双字长16进制数的减法】STACKSSEGMENTSTACK;堆栈段DW128DUP(?);注意这里只有128个字节STACKSENDSDATASSEGMENT;数据段XDW1234H,5678HYDW5678H,1234HZDW2DUP(0)DATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVAX,DATAS;初始化MOVDS,AXMOVAX,XMOVBX,YSUBAX,BXMOVZ,AXMOVCX,X+2MOVDX,Y+2SBBCX,DXMOVZ+2,C
2、XMOVAX,4C00H;退出程序INT21HCODESENDSENDSTART12【十进制数(BCD码)的减法】STACKSSEGMENTSTACK;堆栈段DW128DUP(?);注意这里只有128个字节STACKSENDSDATASSEGMENT;数据段XDB12H,34H,56H,78HYDB56H,78H,12H,34HZDB0,0,0,0DATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVAX,DATAS;初始化MOVDS,AXMOVCL,4;循环标
3、记,表示循环4次XORBX,BX;标志位清零L1:MOVAL,X[BX];寻址SBBAL,Y[BX]DASMOVZ[BX],ALINCBX;BX++DECCL;CL--JNZL1;jumpifnotzero---toL1MOVAX,4C00H;退出程序INT21HCODESENDSENDSTART12【16进制转10进制,除法】STACKSSEGMENTSTACK;堆栈段DW128DUP(?);注意这里只有128个字节STACKSENDSDATASSEGMENT;数据段RDB5DUP(0)DATASENDSCODESSE
4、GMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVAX,DATAS;初始化MOVDS,AXXORSI,SIMOVAX,0FFFFH;字母开头的16进制数打头为0MOVCX,0AHL1:XORDX,DXDIVCXMOVR[SI],DL;余数在DX里保存DLINCSIORAX,AXJNZL1MOVAX,4C00H;退出程序INT21HCODESENDSENDSTART12【10进制转16进制,乘法】STACKSSEGMENTSTACK;堆栈段DW128DUP(?);注意这里只有128个字节ST
5、ACKSENDSDATASSEGMENT;数据段XDB0H,6H,6H,4HDATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVAX,DATAS;初始化MOVDS,AXMOVSI,3;下标3~0MOVCL,4;循环标记4次MOVBX,0AHXORAX,AXL1:MULBXADDAL,X[SI]ADCAH,0DECSIDECCLJNZL1MOVAX,4C00H;退出程序INT21HCODESENDSENDSTART12【字符串操作:找出两个字符串中第一个不相同的
6、字符并传入AL中】STACKSSEGMENTSTACK;堆栈段DW128DUP(?);注意这里只有128个字节STACKSENDSDATASSEGMENT;数据段SOURCEDB'12345abcde'DESTDB'1234567890'DATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVAX,DATAS;初始化MOVDS,AXMOVES,AXMOVAL,0;AL初始化为0LEASI,SOURCE;源串指针LEADI,DEST;目的串指针MOVCX,10;串长
7、度CLD;地址增量DFREPZCMPSB;cx≠0且串不相等时重复比较JZENDL;如果相等,直接结束MOVAL,SOURCE[SI-1];如果不相等,赋值给ALENDL:MOVAX,4C00H;退出程序INT21HCODESENDSENDSTART12【课本P111T11(1)将STRING字符串送到GET_CHAR开始的内存单元中】STACKSSEGMENTSTACK;堆栈段DW128DUP(?);注意这里只有128个字节STACKSENDSDATASSEGMENT;数据段STRINGDB'QWER'GET_CHAR
8、DB4DUP(0)DATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATAS,ES:DATASSTART:MOVAX,DATAS;初始化MOVDS,AXMOVES,AX;注意ES的初始化LEASI,STRINGLEADI,GET_CHARMOVCX,4;字符串长度CLD;地址增量