《进制转16进制汇编程序》由会员分享,可在线阅读,更多相关《进制转16进制汇编程序(10页珍藏版)》请在金锄头文库上搜索。
1、;Name:十进制(-3276832767)转换16进制汇编程序-;Desccription: 输入一个十进制,程序转为该数的 -; 十六进制数从屏幕输出 ;Author:8 ;Date: 2011-11-13;DATA SEGMENTBUF DW 7DWDW 8 DUP(0)ORG 10HDAT1 DW 12 DUP(0)ORG 20HFIRST DWORG 30HSECONDDBORG 40HTHIRDDB 10 DUP()DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DX,OFFSET BUFMOV AH,
2、0AHINT 21HLEA BX,BUFLEA DI,DAT1J;ASC码转换BCM,若为负数推迟一位转码;mov al,BX+2CMP al,-JNE SP1INC BXMOV AL,BX; 负数 判断实际输入位数,将DI 指针指向相应位置MOV CL,6SUB CL,ALMOV CH,0LP3:INC DIINC DILOOP LP3; 结束JMP NEXTSP1:MOV CL,5SUB CL,ALMOV CH,0LP2:INC DIINC DILOOP LP2; 结束NEXT:MOV AX,BX+2;ASC 转 BC加SUB AX,30HMOV BX+2,AXMOV AX,BX+3SUB
3、 AX,30HMOV BX+3,AXMOV AX,BX+4SUB AX,30HMOV BX+4,AXMOV AX,BX+5SUB AX,30HMOV BX+5,AXMOV AX,BX+6SUB AX,30HMOV BX+6,AX;每位分别存入10h,最后一位为符号值DW定义JMOV CX,BX+1LP1:MOV AL,BX+2; 将数据存入 10HMOV DI,ALINC BXINC DIINC DILOOP LP1;MOV AL,BX+3;MOV DI+2,AL;MOV AL,BX+4;MOV DI+4,AL;MOV AL,BX+5;MOV DI+6,AL;MOV AL,BX+6;MOV D
4、I+8,ALLEA BX,BUFLEA DI,DAT1MOV AL,BX+2; 分别计算各个位的真实值存入20H DM义 BPJLEA BP,FIRSTLEA BX,SECONDLEA DI,DAT1MOV AX,DI;万位MOV CX,10000MUL CXMOV BP,AXMOV AX,DI+2;千位MOV CX,1000MUL CXMOV BP+2,AXMOV AX,DI+4;百位MOV CX,100MUL CXMOV BP+4,AXMOV AX,DI+6;十位MOV CX,10MUL CXMOV AX,DI+8;个位MOV CX,1MUL CXMOV BP+8,AX;;分别相加存入 3
5、0HDW定义BX;MOV AX,BPADD AX,BP+2ADD AX,BP+4ADD AX,BP+6ADD AX,BP+8MOV BX,AX; 判定正负数,负数转补码;MOV AX,DI+10CMP AX,-JNE JP9MOV AX,BXNEG AXMOV BX,AX二或是9,由此给定 ASM值JP9: ; 判断每四位数值真值,LEA DI,THIRDMOV AX,BXAND AX,000FHCMP AL,9JG JP3;若大于9,力口 37H转换为 ABCD。的ASMADD AL,30H;若小于等于 9,力口 30H转换1234。的ASMJMP NEXT1JP3:ADD AL,37HNE
6、XT1:MOV DI,ALINC DIMOV CL,4MOV AX,BXSHR AX,CLAND AX,000FHCMP AL,9JG JP4ADD AL,30HJMP NEXT2JP4:ADD AL,37HNEXT2:MOV CL,8MOV AX,BXSHR AX,CLAND AX,000FHCMP AL,9JG JP5ADD AL,30HJMP NEXT3JP5:ADD AL,37HNEXT3:MOV DI,ALINC DIMOV CL,12MOV AX,BXSHR AX,CLAND AX,000FHCMP AL,9JG JP6ADD AL,30HJMP NEXT4JP6:ADD AL,37HNEXT4:; 最终输出;LEA DI,THIRDMOV AH,02HMOV DL,0AHINT 21HMOV DL,DI+3MOV AH,2INT 21HMOV DL,DI+2MOV AH,2INT 21HMOV DL,DI+1MOV AH,2INT 21HMOV DL,DIMOV AH,2INT 21H; 返回 DOS;MOV AH,4CHINT 21HCODE ENDSEND START