汇编二进制转十进制十六进制代码.doc

上传人:scccc 文档编号:14066966 上传时间:2022-02-01 格式:DOC 页数:7 大小:38.50KB
返回 下载 相关 举报
汇编二进制转十进制十六进制代码.doc_第1页
第1页 / 共7页
汇编二进制转十进制十六进制代码.doc_第2页
第2页 / 共7页
汇编二进制转十进制十六进制代码.doc_第3页
第3页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《汇编二进制转十进制十六进制代码.doc》由会员分享,可在线阅读,更多相关《汇编二进制转十进制十六进制代码.doc(7页珍藏版)》请在三一文库上搜索。

1、特注:代码可以优化,请读者自己 思考,运行结果绝对没问题! 实验二数制转换程序代码 二进制到十进制转换DATAS SEGMENTS0 DB please input a binary (length16):,0AH,0DH,$S1DB 18S2DB ? ;总长度S3DB 16 DUP(0);存放首地址S4DW ? ; 存放输入的二进制数S5DB The nuber is not a binary!,$S6 DB Do you want to continue?(Y or N):,0AH,0DH ,$TEMP DB 0BUF DB 5 DUP (?); 此处输入数据段代码DATAS ENDSST

2、ACKS SEGMENTDB 256 DUP(?) ; 初始化堆栈大小为 100; 此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV AX,STACKSMOV SS,AX; 输入一个二进制数LOOPP:CALL CLSCALL HCMOV DX,OFFSET S0 ; 显示字符串 s0CALL G9 ;please input a binary (length16):,0AH,0DH,$MOV DX,OFFSET S1 ; 申请 16个内存空间MOV

3、 AH,0AH ; 将数输入到缓冲区INT 21H;将输入的数据整合放到AX中MOV SI,OFFSET S3MOV CL,S2MOV CH,0HMOV AX,0HLOOP1:CMP BYTE PTR SI,30H; 判断是否为二进制数JL EXITCMP BYTE PTR SI,31HJG EXITMOV BL,SISUB BL,30HMOV BH,0HINC SISHL AX,1ADD AX,BXLOOP LOOP1MOV S4,AXCALL HC ; 二进制转换成十进制MOV SI,5MOV AX,S4MOV CX,5MOV BX,10LP: CWDMOV DX,0DIV BXADD D

4、L,30HMOV BUF SI-1,DLDEC SILOOP LP ; 显示结果CALL COUNT ; 找到第一个非零元的位置MOV AL,TEMPMOV AH,0MOV SI,AXMOV CX,5LOOPPP:MOV DL,BUFSIMOV AH,02HINT 21HINC SILOOP LOOPPPJMP EXIT1EXIT:CALL HCMOV DX,OFFSET S5 ; 显示字符串 S5CALL G9;The nuber is not a binary!,$EXIT1:CALL HCMOV DX,OFFSET S6 ; 显示字符串 S6CALL G9 ;Do you want to

5、 continue?(Y or N):,0AH,0DH ,$ MOV AH,1 INT 21H CMP AL,Y JE LOOPP CMP AL,y JE LOOPPMOV AH,4CHINT 21HCOUNT: ; 判断第一个非零元的位置MOV TEMP,0MOV SI,0MOV CX,4LOO:MOV DL,BUFSICMP DL,30HJNE EXIT3MOV AL,TEMPADD AL,1MOV TEMP,ALINC SILOOP LOOEXIT3: RETG9:MOV AH,9 ; 显示功能调用INT 21HCALL HCRETHC: ; 回车换行MOV DL,0AHMOV AH,2

6、INT 21HMOV DL,0DHMOV AH,2INT 21HRETCLS:MOV AH,6 ; 屏幕初始化MOV AL,0MOV BH,7HMOV CH,0MOV CL,0MOV DH,24MOV DL,79INT 10HMOV BH,0 ; 置光标位子MOV DX,0MOV AH,2INT 10HRETCODES ENDSEND START二进制到十六进制转换DATAS SEGMENTS0DB please input a binary (length16):,0AH,0DH,$S1DB 17S2DB ? ;总长度S3DB 16 DUP(0);存放首地址S4DW ? ; 存放输入的二进制

7、数S5DB The nuber is not a binary!,$S6DB Do you want to continue?(Y or N):,0AH,0DH ,$S7DB The length of the numbei is not 16,$ DATAS ENDSSTACKS SEGMENT STACKS ENDS CODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV AX,STACKSMOV SS,AX ; 输入一个二进制数LOOPP:CALL CLSCALL HCMOV DX,OF

8、FSET S0 ; 显示字符串 S0CALL G9;please input a binary(length16):,0AH,0DH,$MOV DX,OFFSET S1 ; 申请 16个内存空间MOV AH,0AH ; 将数输入到缓冲区INT 21H;将输入的数据整合放到AX中MOV SI,OFFSET S3MOV CL,S2MOV CH,0HMOV AX,0HLOOP1:CMP BYTE PTR SI,30H ;判断是否为 2 进制JL EXITCMP BYTE PTR SI,31HJG EXITCMP S2,10H ;判断是否为 16 为二进制JNE EXIT2MOV BL,SISUB B

9、L,30HMOV BH,0HINC SISHL AX,1ADD AX,BXLOOP LOOP1MOV S4,AXCALL HC ; 二进制变 16进制并输出MOV BX,S4CMP BX,0JZ ZEROMOV CH,04HMOV CL,04HNEXT:ROL BX,CLMOV DL,BLAND DL,0FHADD DL,30HCMP DL,3AHJB LADD DL,7HL:CALL XSDEC CHJNZ NEXTJMP WEISHUZERO:MOV DL,0 CALL XSWEISHU:MOV DL,H CALL XS JMP EXIT1; 选择用的程序EXIT:CALL HCMOV D

10、X,OFFSET S5 ; 显示字符串 S5CALL G9; The nuber is not a binary!,$JMP EXIT1EXIT2:CALL HCMOV DX,OFFSET S7 ; 显示字符串 S7is notCALL G9 ; The length of the numbei 16,$EXIT1:CALL HCMOV DX,OFFSET S6CALL G9 ; 显示字符串 S6MOV AH,1;Do you want to continue?(Y orN):,0AH,0DH ,$INT 21HCMP AL,YJE LOOPPCMP AL,yJE LOOPPMOV AH,4CHINT 21HG9:MOV AH,9 ; 显示功能调用INT 21HCALL HCRETHC: ; 回车换行MOV DL,0AHMOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HRETCLS:MOV AH,6 ; 屏幕初始化MOV AL,0MOV BH,70HMOV CH,0MOV CL,0MOV DH,24MOV DL,79INT 10HMOV BH,0 ; 置光标位子MOV DX,0MOV AH,2INT 10HRETXS: ;2 号功能显示MOV AH,2INT 21HRETCODES ENDSEND START

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1