📄 sdtob(16b).txt
字号:
sseg segment stack
db 256 dup (?)
sseg ends
dseg segment
inbuf db 7,?,7 dup(?)
dseg ends
cseg segment
assume cs:cseg,ds:dseg,ss:sseg
start:
mov ax,dseg
mov ds,ax
mov dx,offset inbuf
mov ah,0ah
int 21h
mov di,offset inbuf
call sdtob
mov bx,ax
mov ah,4ch
int 21h
;**************************************
;subroutine: sdtob
;functing: convert a signed decade(16bit) integer into a binary
; the decade is already in the inbuf
;intry parameter: di=offset inbuf
;outcome paremeter:ax=the binary
sdtob proc
push bx
push cx
xor ax,ax
mov bh,0
mov ch,1
mov cl,byte ptr [di+1]
cmp byte ptr [di+2],'-'
jnz ulong
mov ch,-1
dec cl
inc di
ulong: add di,2
cmp cl,0
jz oks
nexts: mov dx,10
mul dx
mov bl,byte ptr [di]
and bl,0fh
add ax,bx
inc di
dec cl
cmp cl,0
ja nexts
cmp ch,-1
jnz oks
not ax
add ax,1
oks: pop cx
pop bx
ret
sdtob endp
cseg ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -