📄 code.asm
字号:
data segment
lab db 58 dup(?)
len db 40
act db ?
num db 40 dup(?)
space db 0ah,0dh,'$'
data ends
code segment
main proc far
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov bx,0
l0:
mov ax,1
mov word ptr lab+10,ax
l1:
mov bx,10
mov ax,word ptr lab[bx]
mov word ptr lab+12,ax
l2:
mov bx,12
mov ax,word ptr lab[bx]
mov word ptr lab+4,ax
l3:
mov ax,2
mov word ptr lab+14,ax
l4:
mov bx,14
mov ax,word ptr lab[bx]
mov word ptr lab+16,ax
l5:
mov bx,16
mov ax,word ptr lab[bx]
mov word ptr lab+2,ax
l6:
mov ax,1
mov word ptr lab+18,ax
l7:
mov bx,18
mov ax,word ptr lab[bx]
mov word ptr lab+20,ax
l8:
mov bx,20
mov ax,word ptr lab[bx]
mov word ptr lab+8,ax
l9:
mov bx,8
mov ax,word ptr lab[bx]
mov word ptr lab+22,ax
l10:
mov bx,22
mov ax,word ptr lab[bx]
mov word ptr lab+6,ax
l11:
mov bx,4
mov ax,word ptr lab[bx]
mov word ptr lab+24,ax
l12:
mov bx,2
mov ax,word ptr lab[bx]
mov word ptr lab+26,ax
l13:
mov bx,24
mov ax,word ptr lab[bx]
mov bx,26
mov dx,word ptr lab[bx]
cmp ax,dx
jle l16
l14:
mov ax,0
mov word ptr lab+28,ax
l15:
jmp l17
l16:
mov ax,1
mov word ptr lab+28,ax
l17:
mov bx,28
mov ax,word ptr lab[bx]
mov dx,0
cmp ax,dx
je l25
l18:
mov ax,3
mov word ptr lab+30,ax
l19:
mov bx,30
mov ax,word ptr lab[bx]
mov word ptr lab+32,ax
l20:
mov bx,32
mov ax,word ptr lab[bx]
mov word ptr lab+4,ax
l21:
mov ax,4
mov word ptr lab+34,ax
l22:
mov bx,34
mov ax,word ptr lab[bx]
mov word ptr lab+36,ax
l23:
mov bx,36
mov ax,word ptr lab[bx]
mov word ptr lab+2,ax
l24:
jmp l25
l25:
mov bx,2
mov ax,word ptr lab[bx]
mov word ptr lab+38,ax
l26:
mov bx,4
mov ax,word ptr lab[bx]
mov word ptr lab+40,ax
l27:
mov bx,38
mov ax,word ptr lab[bx]
mov bx,40
mov dx,word ptr lab[bx]
cmp ax,dx
jge l30
l28:
mov ax,0
mov word ptr lab+42,ax
l29:
jmp l31
l30:
mov ax,1
mov word ptr lab+42,ax
l31:
mov bx,42
mov ax,word ptr lab[bx]
mov dx,0
cmp ax,dx
je l36
l32:
mov ax,3
mov word ptr lab+44,ax
l33:
mov bx,44
mov ax,word ptr lab[bx]
mov word ptr lab+46,ax
l34:
mov bx,46
mov ax,word ptr lab[bx]
mov word ptr lab+8,ax
l35:
jmp l25
l36:
mov ax,5
mov word ptr lab+48,ax
l37:
mov bx,48
mov ax,word ptr lab[bx]
mov word ptr lab+50,ax
l38:
mov bx,50
mov ax,word ptr lab[bx]
mov word ptr lab+6,ax
l39:
mov ax,4c00h
int 21h
main endp
in_put proc near
push bx
line:
lea dx,len
mov ah,0ah
int 21h
lea dx,space
mov ah,09h
int 21h
mov cl,act
mov ch,0
lea bx,num
mov dx,0
push si
mov si,0
loop0:
mov al,[bx]
cmp al,30h
mov ah,0
jl error
cmp al,3ah
jnl error
sub al,30h
push ax
inc si
inc bx
loop loop0
cmp bx,di
je error
pop ax
mov di,ax
dec si
cmp si,0
je put_in
pop ax
mov dl,10
mul dl
add di,ax
dec si
cmp si,0
je put_in
pop ax
mov dl,100
mul dl
add di,ax
dec si
cmp si,0
jne error
cmp di,255
ja error
put_in:
pop si
pop bx
mov word ptr lab[bx+si],di
jmp go
error:
mov cx,si
loopn1:
pop ax
loop loopn1
jmp line
go:
ret
in_put endp
out_put proc near
mov dl,100
mov ah,0
mov al,byte ptr lab[bx+si]
div dl
mov si,0
cmp al,0
jnz go_bai
mov si,1
shi:
mov al,ah
mov ah,0
mov dl,10
div dl
cmp al,0
jnz go_shi
cmp si,1
jne go_shi
g_e:
add ah,30h
mov dl,ah
mov ah,02h
int 21h
mov dl,20h
mov ah,02h
int 21h
inc bx
jmp end_o
go_shi:
push ax
add al,30h
mov dl,al
mov ah,02h
int 21h
pop ax
jmp g_e
go_bai:
push ax
add al,30h
mov dl,al
mov ah,02h
int 21h
pop ax
jmp shi
end_o:
ret
out_put endp
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -