【正文】
iv cx mov cx,dx mov dx,bx pop bx ret 。名稱: show_str 。功能:在指定的位置,用指定的顏色,顯示一個(gè)用 0結(jié)束的字符串 。參數(shù): (dh)=行號(hào) (1~25), (dl)=列號(hào) (1~80), (cl)=顏色, es: si指向字符串的首地址 。返回:無 show_str:push di push si mov di,0 push ax push dx dec dh dec dl 。這里采用習(xí)慣上的叫法,放在顯示緩沖區(qū)最開頭就是 1行 1列 mov al,160 。1行 80個(gè)字符,一個(gè)字符 2個(gè)字節(jié) mul dh add dl,dl 。一個(gè)字符 2個(gè)字節(jié) mov dh,0 add dx,ax add di,dx 。這幾行是為了計(jì)算字符串首的偏移地址 mov ah,cl 。字符的高位保存屬性,低位保存數(shù)據(jù) push cx change:mov cl,es:[si] mov ch,0 jcxz ok mov al,es:[si] push es push ax mov ax,0b800h 。顯示緩沖區(qū)的空間為 B8000H~BFFFFH mov es,ax pop ax mov es:[di],ax 。輸出到緩沖區(qū) pop es inc si add di,2 jmp short change ok:pop cx pop dx pop ax pop si pop di ret codesg ends end start ( 3) 結(jié)果如圖: 四、 實(shí)驗(yàn)總結(jié) 通過這次實(shí)驗(yàn),我學(xué)會(huì)了 call 和 ret 指令的用法,學(xué)會(huì)了 編寫子程序以及調(diào)用各個(gè)子程序,組成一個(gè)大程序。我發(fā)現(xiàn),匯編的子程序,就跟 c 語言的函數(shù)差不多。在實(shí)驗(yàn)的過程中,我學(xué)會(huì)了編寫更加復(fù)雜的程序,懂得了更多的匯編知識(shí),在匯編語言的學(xué)習(xí)上又有了新的進(jìn)步。