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

📄 ta.asm

📁 用汇编语言实现的类似DOS下打字的游戏
💻 ASM
字号:
;函数功能:将某一数按十进制输出
;入口参数: ax---存贮一字
;出口参数: 转换后的数字在显示器上输出
;所用寄存器:bx----地址逆计数器
data2 segment
	numchar db 6 dup(0)
	cout equ $-numchar
	pot2 db ?
data2 ends
stack2 segment stack
	db 100 dup(0)
stack2 ends
pro2 segment
	assume cs:pro2,ds:data2,ss:stack2
num_char proc	far
	push si	
	push di
	push ds
	push cx
	push dx		
	mov cx,	data2	;将numchar与数据段联系起来
	mov ds,cx
	mov bx,cout	;地址逆计数器
	dec bx	
	lea si,numchar
	mov ch,'$'
	mov [bx+si],ch
	mov pot2,0h	;预置pot2=0代表ax为正
	mov cx,10	
	mov dx,0	;ax扩展待用
	cmp ax,0	;判断待输出的数字正负性		
	jns pov		;ax为正转
	mov pot2,'-'	
	neg ax		;将负数转换成对应相反数
pov:	idiv cx
	add dl,30h
	dec bx
	mov [bx+si],dl
	cmp ax,0
	jne not_end		
	jmp exit2
not_end:mov dx,0
	jmp pov
exit2:	dec bx
	mov al,pot2
	mov [bx+si],al	
	mov dx,bx
	mov ah,9
	int 21h	
	pop dx
	pop cx
	pop ds
	pop di
	pop si
	ret
pro2    ends	
num_char endp

data segment
	ran db 0
data ends
stack segment stack
	db 200 dup(0)
stack ends
code segment
	assume ds:data,ss:stack,cs:code
begin:
	call random
	mov ran,bl
	mov al,ran
	mov ah,0
	call far ptr num_char
	mov ah,4ch
	int 21h
;建立一个随机数发生程序,用于控制字母下降的位置的随机变化
;出口参数------------bl,存放一个小于79大于0的随机数
random proc 
	push ax
	push cx
	push dx

	mov ah,2ch
	int 21h
	cmp dl,79
	ja  above
	mov bl,dl
	jmp exit
above:	mov bl,dh
exit:	pop dx
	pop cx
	pop ax
	ret
random endp
code ends
	end begin		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -