DATAS SEGMENT
;此处输入数据段代码
STRING DB 10,13,'$'
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
mov AX,123
CALL Binary;二进制输出函数
CALL LINEFEED
CALL HEXADECIMAL;十六进制输出函数
MOV AH,4CH
INT 21H
Binary PROC
PUSH CX
PUSH DX
MOV CX,16
L1:
ROL AX,1
MOV DL,AL
AND DL,1
ADD DL,48
PUSH AX
MOV AH,2
INT 21H
POP AX
LOOP L1
POP DX
POP CX
RET
Binary ENDP
HEXADECIMAL PROC
PUSH BX
PUSH CX
PUSH DX
MOV BX,16
L1:
CMP BX,0
JE L3
MOV CL,4
ROL AX,CL
MOV DL,AL
AND DL,15
ADD DL,48
CMP DL,58
JL L2
SUB DL,48
ADD DL,55
L2:
PUSH AX
MOV AH,2
INT 21H
POP AX
SUB BX,4
JMP L1
L3:
MOV DL,'H'
MOV AH,2
INT 21H
POP BX
POP CX
POP DX
RET
HEXADECIMAL ENDP
LINEFEED PROC
PUSH AX
PUSH DX
MOV DX,OFFSET STRING
MOV AH,9
INT 21H
POP DX
POP AX
RET
LINEFEED ENDP
CODES ENDS
END START
题目不难核心就是一个移位rol指令