📄 u1.asm
字号:
.MODEL HUGE
STACK SEGMENT STACK PARA 'STACK'
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT WORD PUBLIC 'CODE'
ASSUME CS:CODE,DS:DATA,ss:stack
pp1 PROC FAR
START: .386P
CLI
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,200
STI
; set cursor
MOV AH,02H
MOV BH,0
MOV DX,0301H
MOV DL,0
INT 80H
;int 90h ;ok
;cli
MOV DX,OFFSET msg_k ;prompt
MOV AH,9
INT 21H
mov si,0
l_out:
mov edi,03FFFFFFH
l_in:
dec edi
jnz l_in
MOV AX,SI
CALL BIN_TO_ASCII
LEA DX,ASCII_BUF
MOV AH,9
INT 21H
INC si
CMP SI,10 ;20
JNE L_OUT
pp1_end:
LEA DX,OK_MSG
MOV AH,9
INT 21H
pp1_end1:
MOV AX,4C00H
INT 21H
;
pp1 ENDP
BIN_TO_ASCII PROC FAR
; input AX=binary value
; output ASCII_BUF:string
PUSH CX
PUSH DX
PUSH SI
MOV CL,020H
MOV BYTE PTR ASCII_BUF,CL
MOV BYTE PTR ASCII_BUF+1,CL
MOV BYTE PTR ASCII_BUF+2,CL
MOV BYTE PTR ASCII_BUF+3,CL
MOV CX,10
LEA SI,ASCII_BUF+4
BTOA1: CMP AX,10
JB BTOA2
XOR DX,DX
DIV CX
OR DL,30H
MOV [SI],DL
DEC SI
JMP BTOA1
BTOA2: OR AL,30H
MOV [SI],AL ;
POP SI
POP DX
POP CX
RET
BIN_TO_ASCII ENDP
CODE ENDS
DATA SEGMENT PUBLIC 'DATA'
ASCII_BUF DB 5 DUP(30H),'$'
t_BUF DB 10240 DUP(0)
OK_MSG DB 'U1_end, Bye! $'
msg_k DB 'U1_running $'
msg_ss DB 'ss: $'
msg_cs DB 'cs: $'
DATA ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -