1 7子程式及其應用

2021-07-02 04:52:57 字數 2382 閱讀 5292

實驗任務:

編一子,主程式,其功能要求如下:

子程式的入口引數為一ascii碼字元,它將該字元的ascii碼分部以十六進製制和二進位制形式顯示出來。如主程式呼叫該子程式時,若傳送給子程式的ascii碼為42h,則顯示資訊如下:

b:  42h 

01000010

主程式的功能是反覆從鍵盤輸入字元,然後呼叫上述子程式,用十六進製制及二進位制形式顯示出鍵入字元的ascii碼,當輸入esc時返回dos。

**(測試可用,排版問題自行調整):

code segment

start:mov ah,07h 

;鍵盤輸入無回顯

int 21h

cmp al,00011011b

je _ok

push ax

mov ah,02h

mov dl,0ah

int 21h

mov ah,02h

mov dl,0dh

int 21h

pop ax

call _ascii 

;顯示要求規則

mov ah,02h

mov dl,0ah

int 21h

mov ah,02h

mov dl,0dh

int 21h

ret 

;不返回作業系統

_ascii:push ax

push dx

push ax

mov dl,al 

;ascii字元

mov ah,02h

int 21h

mov dl,3ah 

;:號mov ah,02h

int 21h

call _blank

pop ax

call _asciito16 

;顯示ascii碼的16進製制值

call _blank

call _asciitob 

;顯示ascii碼的二進位制值

pop dx

pop ax

ret_ok:mov ax,4c00h

int 21h 

_asciitob:push cx 

;此函式完成二進位制致ascii碼的轉換 

push bx

push ax

push di

mov di,7

mov bx,10000000b

mov cx,8

change_s:push cx

push ax

mov cx,di

and al,bl

shr bl,1

shr al,cl

add al,30h

mov dl,al

mov ah,02h

int 21h

dec di

pop ax

pop cx

loop change_s 

pop di

pop ax

pop bx

pop cx

ret_asciito16:push ax

push bx

push cx

push dx

push ax

mov cx,4 

;ascii碼高位字母

shr al,cl

cmp al,0ah

jnb _tzh

add al,30h

tzh:mov dl,al

mov ah,02h

int 21h

pop ax

and al,00001111b 

;ascii碼低位字母

cmp al,0ah

jnb _tzl

add al,30h

tzl:mov dl,al

mov ah,02h

int 21h 

mov dl,'h' 

;顯示h

mov ah,02h

int 21h

pop dx

pop cx

pop bx

pop ax

ret_blank:push ax 

;寫空格函式

push cx

mov cx,4

s_blank:mov dl,00h

mov ah,02h

int 21h

loop s_blank

pop cx

pop ax

ret_tzh:add al,37h 

;調整成正確的ascii碼

jmp tzh

_tzl:add al,37h 

;調整成正確的ascii碼

jmp tzl 

code ends

end start 

OGRE 1 7 例子程式分析

如果你自己都不清楚所談論的東西,就根本不可能精確的描述它 馮諾依曼 今天我就試著來表述一件眾人皆知的事情,以測試自己到底有沒有明白這件事情。ogre 是著名的設計模式大師,這已是不爭的事實。可以說 ogre 裡將設計模式用得淋漓盡致。在這裡我就不批判設計模式該不該用了。反正 ogre 已經用了,並且...

OGRE 1 7 例子程式分析

如果你自己都不清楚所談論的東西,就根本不可能精確的描述它 馮諾依曼 今天我就試著來表述一件眾人皆知的事情,以測試自己到底有沒有明白這件事情。ogre是著名的設計模式大師,這已是不爭的事實。可以說ogre裡將設計模式用得淋漓盡致。在這裡我就不批判設計模式該不該用了。反正ogre已經用了,並且沒有出現什...

子程式過載

子程式過載是指有一系列具有相同的子程式名稱,但有不同的型別和數目的引數的子程式,它們用於完成不同但相關的操作。在程式中呼叫某個過載的子程式時,編譯器將根據呼叫的子程式及其所使用的引數序列和數目來確定那個子程式將被執行。1.在編寫過載子程式時應注意各子程式的引數個數和引數型別的差異,否則編譯器將不能正...