汇编语言 二进制 十进制 十六进制 之间进行转化 汇编语言将二进制转化为十六进制的功能 ,解释下列代码每一句在...

\u6c47\u7f16\u8bed\u8a00\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u5b9e\u73b0\u5341\u8fdb\u5236\u3001\u5341\u516d\u8fdb\u5236\u548c\u4e8c\u8fdb\u5236\u4e4b\u95f4\u7684\u8f6c\u6362

CODE SEGMENT ASSUME CS:CODE STRR DB 18 STRRN DB ? STRRS DB 18 DUP(?) START: PUSH CS POP DS PUSH CS POP ES CALL INPUT CALL LFCR CALL LFCR MOV BX,10 CALL DSPAXX CALL LFCR MOV BX,16 CALL DSPAXX CALL LFCR MOV BX,2 CALL DSPAXX MOV AH,4CH INT 21H;================================ INPUT PROC NEAR PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH BP PUSHF MOV AH,0AH LEA DX,STRR INT 21H LEA SI,STRR MOV CL,[SI+1] XOR CH,CH ADD SI,2 CMP BYTE PTR[SI],'B' JE @B CMP BYTE PTR[SI],'H' JE @H CMP CX,5 JBE @1 MOV CX,5 @1: MOV AX,0 @2: SHL AX,1 MOV BX,AX SHL AX,1 SHL AX,1 ADD AX,BX MOV BL,[SI] AND BL,0FH XOR BH,BH ADD AX,BX INC SI LOOP @2 JMP @IEND @B: DEC CX INC SI CMP CX,16 JBE @B1 MOV CX,16 @B1: MOV AX,0 @B2: SHL AX,1 MOV BL,[SI] AND BL,1 XOR BH,BH ADD AX,BX INC SI LOOP @B2 JMP @IEND @H: DEC CX INC SI CMP CX,4 JBE @H1 MOV CX,4 @H1: MOV AX,0 @H2: SHL AX,1 SHL AX,1 SHL AX,1 SHL AX,1 MOV BL,[SI] CMP BL,'9' JBE @H3 SUB BL,7 @H3: AND BL,0FH XOR BH,BH ADD AX,BX INC SI LOOP @H2 @IEND: POPF POP BP POP DI POP SI POP DX POP CX POP BX RET INPUT ENDP;================================ ; \u8f93\u51faax\u7684\u503c\uff0c\u8f93\u51fa\u7684\u8fdb\u4f4d\u5236\u5728bx\u4e2d\u8bbe\u5b9a\uff0cbx\uff1d2~16 DSPAXX PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSHF XOR CX,CX ; MOV BX,16 @DSPAXX_1: XOR DX,DX DIV BX INC CX OR DX,30H PUSH DX CMP AX,0 JNE @DSPAXX_1 MOV AH,2 @DISPAXX_2: POP DX CMP DL,3AH JB @DISPAXX_3 ADD DL,7 @DISPAXX_3: INT 21H LOOP @DISPAXX_2 MOV DL,32 INT 21H POPF POP DX POP CX POP BX POP AX RET DSPAXX ENDP;=============================== LFCR PROC NEAR PUSH AX PUSH DX MOV AH,2 MOV DL,13 INT 21H MOV DL,10 INT 21H POP DX POP AX RET LFCR ENDP;================================= DSPAX PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSHF XOR CX,CX MOV BX,10 @DSPAX1: XOR DX,DX DIV BX INC CX OR DX,30H PUSH DX CMP AX,0 JNE @DSPAX1 MOV AH,2 @DISPAX2: POP DX INT 21H LOOP @DISPAX2 MOV DL,32 INT 21H POPF POP DX POP CX POP BX POP AX RET DSPAX ENDP;================================== CODE ENDS END START

MAIN PROC FAR
ASSUME CS:A1
START: PUSH DS
SUB AX,AX
PUSH AX
MOV BX,0110 1101 0011 0111B ;6D37H
MOV CH,4
B1: MOV CL,4
ROL BX,CL ;\u5c06BX\u4e2d\u7684\u6570\u5faa\u73af\u5de6\u79fb4\u4f4d,\u4e5f\u5c31\u662f\u628aBX\u6700\u9ad84\u4f4d,\u653e\u5230BX\u7684\u6700\u4f4e4\u4f4d\u4e0a\u53bb\u3002
MOV AL,BL ;\u5c06\u4f4e8\u4f4d\u653e\u5165AL
AND AL,0FH ;\u53d6\u4f4e4\u4f4d
ADD AL,30H ;\u52a0\u4e0a30H \u4ece\u8fd9\u91cc\u5f00\u59cb\u5c064\u4f4d\u4e8c\u8fdb\u5236\u6570\u8f6c\u621016\u8fdb\u5236ASCII\u7801,
;0--\u7684ASCII\u7801\u662f30H\u20269\u662f39H,A\u662f41H,B\u662f42H\u2026F\u662f46H
CMP AL,3AH ;\u52a0\u7ed3\u679c\u662f\u4e0d\u662f\u5c11\u4e8e3A
JL B2 ;\u662f\u7684\u8bdd,\u8868\u793a\u662f0-9\u4e4b\u4e2d\u6570
ADD AL,7H ;\u5426\u5219\u8fd8\u8981\u52a0\u4e0a7,\u53d8\u6210\u5bf9\u5e94\u7684A\u6216B\u3001C\u3001D\u3001E\u3001F
B2: MOV DL,AL ;AL\u662f\u8f6c\u6362\u597d\u7684\u4e00\u4f4d16\u8fdb\u5236\u6570\u7684ASCII\u7801
MOV AH,2
INT 21H ;\u663e\u793a\u5230\u5c4f\u5e55
DEC CH
JNZ B1 ;\u56e0\u4e3aBX\u4e2d\u5176\u67094\u4f4d16\u8fdb\u5236\u6570,\u6240\u4ee5\u8981\u5904\u74064\u6b21\u3002\u8fd9\u91cc\u662f\u5224\u65ad\u5904\u7406\u5b8c4\u6b21\u6ca1,\u5982\u679c\u6ca1\u6709,\u5c31\u7ee7\u7eed\u5904\u7406\u4e0b\u4e00\u4e2a\u6570
RET
MAIN ENDP
A1 ENDS
END START


\u8fd9\u4e2a\u7a0b\u5e8f\u7684\u529f\u80fd\u662f\u5c06BX\u4e2d\u76840110 1101 0011 0111B(6D37H)\u4ee516\u8fdb\u5236\u663e\u793a\u5728\u5c4f\u5e55\u4e0a\u3002
\u201c\u663e\u793a\u5728\u5c4f\u5e55\u201d\u7684\u51c6\u786e\u8bf4\u6cd5\u662f:\u8f93\u51fa\u5230\u7cfb\u7edf\u6807\u51c6\u63a7\u5236\u53f0\u4e0a\u3002
\u4e0d\u77e5\u9053\u6211\u8bf4\u6e05\u695a\u6ca1,\u5e0c\u671b\u80fd\u5e2e\u5230\u4f60

其实你不需要转换的,之所以要“转换”出来是供给人看的。计算机里面都是以二进制存储的,你用应用软件提取出来的都是以十六进制表述的数据。你看看如下东东:
mov a,#10000000B
mov a,#80H
mov a,#128
第一个是二进制,第二个是十六进制,第三个是十进制。直接赋值就可以了。

扩展阅读:一个十六进制是 个bit ... 6e c 十六进制转十 ... 二进制by天上掉馅饼txt ... 各种进制 前缀 ... 二 八 十 十六进制 ... 某进制数3 5 23 ... 许子智 西藏电力 简介 ... 十进制 123 的原码表示为 ... 二进制计算器 商 余数 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网