📄 610.asm
字号:
DSEG SEGMENT
VAL1 DW 000FH
DSEG ENDS
CSEG SEGMENT
BANDO PROC FAR
ASSUME CS:CSEG,DS:DSEG
START:PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
PUSH VAL1 ;将val1压栈
CALL PAIRS ;调用PAIRS
RET
BANDO ENDP
PAIRS PROC NEAR
PUSH BP
MOV BP,SP
PUSH BX
MOV BX,[BP+4] ;(BX)=VAL1
CALL OUTBIN ;调用子程序OUTBIN
MOV CX,8 ;输出8个空格
SPACE:MOV DL,' '
MOV AH,2
INT 21H
LOOP SPACE
CALL OUTOCT ;调用子程序OUTOCT
CALL CRLF ;调用CRLF
POP BX
POP BP
RET 2
PAIRS ENDP
OUTBIN PROC NEAR
PUSH BX
MOV CX,16
ONEBIT:ROL BX,1
MOV DX,BX
AND DX,1 ;从第15位开始逐个取得VAL1的二进制位
OR DX,30H ;将二进制位变成ASCII
MOV AH,2
INT 21H ;并输出
LOOP ONEBIT ;循环16次
POP BX
RET
OUTBIN ENDP
OUTOCT PROC NEAR
MOV CX,5 ;
ROL BX,1
MOV DX,BX
AND DX,01
OR DX,30H
MOV AH,2
INT 21H
NEXT: PUSH CX
MOV CL,3
ROL BX,CL
MOV DX,BX
AND DX,7
OR DX,30H
MOV AH,2
INT 21H
POP CX
LOOP NEXT
RET
OUTOCT ENDP
CRLF PROC NEAR
MOV AH,2
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
RET
CRLF ENDP
CSEG ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -