這個(gè)一個(gè)剛學(xué)習(xí)匯編的入門實(shí)例,想學(xué)匯編的朋友可以看看
assume cs:code
data segment
db ’Welcome to masm!’,0
data ends
stack segment
db 100 dup(0)
stack ends
;以上定義數(shù)據(jù)段和棧段
code segment
start:
mov dh,18 ;dh來(lái)定位行
mov dl,23 ;dl來(lái)定位列
mov cl,02h
mov ax,data
mov ds,ax
mov si,0
call show_str ;調(diào)用子程序
mov ax,4c00h
int 21h
;下面是子程序
;========================================
show_str:
mov ax,stack
mov ss,ax
mov sp,100
mov ax,0b800h
mov es,ax
mov al,160
mul dh
mov bx,ax
mov al,2
mul dl
mov di,ax
do:
mov ch,0
push cx ;將顏色信息保存
mov al,[si]
mov ch,0
mov cl,al
jcxz out_show ;遇到0就跳出循環(huán)
pop cx ;將顏色信息回復(fù)
mov byte ptr es:[bx+di],al ;寫入顯卡,將字符顯示
mov byte ptr es:[bx+di+1],cl ;在低位寫入顏色信息
inc si
add di,2
jmp short do ;實(shí)現(xiàn)循環(huán)操作
out_show:
ret
code ends
end start
assume cs:code
data segment
db ’Welcome to masm!’,0
data ends
stack segment
db 100 dup(0)
stack ends
;以上定義數(shù)據(jù)段和棧段
code segment
start:
mov dh,18 ;dh來(lái)定位行
mov dl,23 ;dl來(lái)定位列
mov cl,02h
mov ax,data
mov ds,ax
mov si,0
call show_str ;調(diào)用子程序
mov ax,4c00h
int 21h
;下面是子程序
;========================================
show_str:
mov ax,stack
mov ss,ax
mov sp,100
mov ax,0b800h
mov es,ax
mov al,160
mul dh
mov bx,ax
mov al,2
mul dl
mov di,ax
do:
mov ch,0
push cx ;將顏色信息保存
mov al,[si]
mov ch,0
mov cl,al
jcxz out_show ;遇到0就跳出循環(huán)
pop cx ;將顏色信息回復(fù)
mov byte ptr es:[bx+di],al ;寫入顯卡,將字符顯示
mov byte ptr es:[bx+di+1],cl ;在低位寫入顏色信息
inc si
add di,2
jmp short do ;實(shí)現(xiàn)循環(huán)操作
out_show:
ret
code ends
end start