📄 chp3_26b.asm
字号:
stack segment stack'stack'
dw 32 dup(?)
stack ends
data segment
IBF DB 5,0,5 DUP(0)
OBF DB 9 DUP(0)
data ends
code segment
begin proc far
assume ss:stack,cs:code,ds:data
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
MOV DX,OFFSET IBF
MOV AH,10
INT 21H
MOV BX,1
MOV CH,IBF[BX]
MOV CL,4
XOR AX,AX
AGAIN:INC BX
SUB IBF[BX],30H
CMP IBF[BX],0AH
JB NS7
SUB IBF[BX],7
NS7: SHL AX,CL
OR AL,IBF[BX]
DEC CH
JNZ AGAIN
AND AH,AH
JNZ NAP
CBW
NAP: MOV BX,OFFSET OBF+8
MOV BYTE PTR [BX],'$'
MOV CX,10
AND AX,AX
PUSHF
JNS NNEG
NEG AX
NNEG: AND AX,AX
JZ JOUT
MOV DX,0
DEC BX
DIV CX
ADD DL,30H
MOV [BX],DL
JMP NNEG
JOUT: POPF
JNS PLUS
DEC BX
MOV BYTE PTR [BX],'-'
PLUS: DEC BX
MOV BYTE PTR [BX],'='
DEC BX
MOV BYTE PTR [BX],0AH
MOV DX,BX
MOV AH,9
INT 21H
ret
begin endp
code ends
end begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -