彙編語言 實驗10.3 數值顯示

彙編語言 實驗10.3 數值顯示

寫給自己的一些題外話:這個題目做了兩天。這幾天狀態一直不太好,書都看不進去,題也看不進去。。

子程序描述

名稱:dtoc
功能:將word型數據轉變爲表示十進制形式的字符串,字符串以0位結尾符
參數:(ax)=word型數據
    ds:si指向字符串的首地址
返回:無
應用舉例:編程,將數據12666以十進制的形式在屏幕的8行3列,用綠色顯示出來。在顯示時我們調用本次實驗中的第一個子程序show_str

程序

assume cs:code

data segment
    db 10 dup (0)
data ends

code segment
start:  mov ax,12666
    mov bx,data
    mov ds,bx
    mov si,0
    call dtoc

    mov dh,8
    mov dl,3
    mov cl,2
    mov si,0
    call show_str

    mov ax,4c00h
    int 21h

dtoc:   
    mov cx,ax
    jcxz reverse
    mov bx,10
    div bx
    mov cx,dx
    add cx,30h
    push cx
    mov dx,0;使下一次循環的ax的值爲上一次結果的商
    add si,2
    loop dtoc
reverse:
    mov ax,si
    mov bx,2
    div bx
    mov cx,ax;ax是循環次數,即顯示數字的位數
    jcxz good
    mov si,0
reverse1:
    pop ax
    mov ds:[si],ax
    add si,2
    loop reverse1
good:   ret

show_str:
    push dx
    push cx
    mov ax,0b800h
    mov es,ax
    mov al,160;注意!!
    sub dh,1
    mul dh
    mov bx,ax
    mov al,2
    mul dl
    add bx,ax;bx存放的是顯存地址
    mov dh,cl
s:  mov ch,0
    mov cl,ds:[si]
    jcxz ok
    mov dl,cl
    mov es:[bx],dx
    add si,2
    add bx,2
    jmp short s
ok: pop cx
    pop dx
    ret

code ends
end start
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章