⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 code.asm

📁 编译原理课程设计,语法分析.学校的课程设计,好象还有点用吧
💻 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 + -