|
发表于 2022-12-31 16:42:40
|
显示全部楼层
本帖最后由 jackz007 于 2022-12-31 16:44 编辑
- assume cs:code , ds:data
- data segment para public 'DATA'
- db 10 dup(0)
- data ends
-
- stack segment para stack 'STACK'
- db 400h dup(0)
- stack ends
- code segment para public 'CODE'
- dtoc proc near
- cld
- xor bx,bx
- mov cx,10
- d01: xor dx,dx
- div cx
- add dl,48
- mov [si+bx],dl
- or ax,ax
- jz d02
- inc bx
- jmp short d01
- d02: push bx
- pop cx
- shr cx,1
- mov di,bx
- add di,si
- d03: mov al,[si]
- xchg [di],al
- mov [si],al
- inc si
- dec di
- loop d03
- ret
- dtoc endp
- show proc near
- push es
- push cx
- mov ax,0b800h
- mov es,ax
- mov al,160
- mov cl,dh
- mul cl
- shl dl,1
- xor dh,dh
- add ax,dx
- mov di,ax
- s01: lodsb
- or al,al
- jz s02
- stosb
- pop ax
- push ax
- stosb
- jmp short s01
- s02: pop cx
- pop es
- ret
- show endp
- main proc far
- mov ax,data
- mov ds,ax
- mov ax,12666
- mov si,0
- call dtoc
- mov si,0
- mov dh,8 ;定义显示在屏幕第8行
- mov dl,3 ;定义显示在屏幕第3列
- mov cl,2 ;定义显示为绿色字
- call show
- mov ax,4c00h
- int 21h
- main endp
- code ends
- end main
复制代码 |
|