资源描述:
《典型汇编程序设计举例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章典型汇编程序设计—举例算术运算在偏移首地址为ARRAY的内存储区有100个字型数据,要求将数组的每个元素加1。DATASEGMENTLOOPAA1ARRAYDW100DUP(?)MOVAX,4C00HDATAENDSCODEENDSCODESEGMENTENDSTARTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXLEABX,ARRAYMOVCX,LENGTHARRAYAA1:INCWORDPTR[BX],1ADDBX,2第4章典型汇编程序设计—举例有两个无符号字节型数组,设数组元素个数相等,编程将数组中的对应元素相加,结果
2、存入另一内存区。DATASEGMENTM1DB20DUP(?)M2DB20DUP(?)M3DW20DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,M1LEADI,M2LEABX,M3MOVCX,20AA1:MOVAL,[SI]ADDAL,[DI]MOV[BX],ALADCBYTEPTR[BX+1],0INCSIINCDIADDBX,2LOOPAA1MOVAX,4C00HINT21HCODEENDSENDSTART第4章典型汇编程序设计—举例逻辑处理器将AL中高、低4位交换
3、将AX内容按相反的顺序存入DXCODESEGMENTCODESEGMENTASSUMECS:CODEASSUMECS:CODESTART:MOVAL,0ABHSTART:MOVAX,1234HMOVCL,4MOVCX,16ROLAL,CLAA1:SHLAX,1MOVAX,4C00HRCRBX,1INT21HLOOPAA1CODEENDSMOVAX,4C00HENDSTARTINT21HCODEENDSENDSTART第4章典型汇编程序设计—举例代码转换将以’$’结束的字符串中的小写字母改为大写字母DATASEGMENTSTRDB‘heLLo,eveRyboDY!’,’$’D
4、ATAENDSCODESEGMENTASSIMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,STRA1:MOVAL,[BX]CMPAL,’$’JEDONECMPAL,’a’JBNEXTCMPAL,’z’JANEXTSUBAL,20HMOV[BX],ALNEXT:INCBXJMPA1DONE:MOVAX,4C00HINT21HCODEENDSENDSTART第4章典型汇编程序设计—举例十六进制数到十进制数的转换SSTSEGMENTPARASTACK‘STACK’TOPDWDUP(?)SSLENDSCODESEGMENTASSUME
5、CS:CODE,SS:SSTSTART:MOVAX,SSTMOVSS,AXMOVAX,4B6CHMOVCX,0;统计除法次数MOVBX,10A1:MOVDX,0;将被除数扩展为32位DIVBXPUSHDX;将转换好的数存入堆栈INCCXORAX,AX;转换直到商为0JNZA1MOVAX,4C99HINT21HCODEENDSENDSTART第4章典型汇编程序设计—举例表格处理编写程序实现0—9的数字转换成所要求的密码01234567892716908345DATASEGMENTMOVDI,OFFSETVAL2TABLEDB2,7,1,6,9,0,8,3,4,5MOVCX,5
6、VAL1DB8,4,1,7,5LEABX,TABLEVAL2DB5DUP(?)A1:MOVAL,[SI]DATAENDSXLATCODESEGMENTMOV[DI],ALASSUMECS:CODE,DS:DATAINCSISTART:MOVAX,DATAINCDIINT21HMOVDS,AXLOOPA1CODEENDSMOVSI,OFFSETVAL1MOVAX,4C00HENDSTART第4章典型汇编程序设计—举例串指令题将偏移地址为STG1、长度为COUNT的数据块,传送到偏移地址为STG2的内存区中。DATASEGMENTSTG1DW25DUP(?)STG2DW25DU
7、P(?)COUNTEQU25DATAENDSSTACK1SEGMENTPARASTACK‘STACK’DB100DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXMOVES,AXMOVCX,COUNTLEASI,STG1LEADI,STG2CLDREPMOVSWMOVAX,4COOHINT21HCODESEGMENTENDSTART第4章典型汇编程序设计—举例将BLOCK内存区的带符号字节型数据按照正数