📄 ta.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 + -