这个一个刚学习汇编的入门实例,想学汇编的朋友可以看看 assume cs:code data segment db ’Welcome to masm!’,0 data ends stack segment db 100 dup(0) stack ends ;以上定义数据段和栈段 code segment start: mov dh,18 ;dh来定位行 mov dl,23 ;dl来定位列 mov cl,02h mov ax,data mov ds,ax mov si,0 call show_str ;调用子程序 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就跳出循环 pop cx ;将颜色信息回复 mov byte ptr es:[bx+di],al ;写入显卡,将字符显示 mov byte ptr es:[bx+di+1],cl ;在低位写入颜色信息 inc si add di,2 jmp short do ;实现循环操作 out_show: ret code ends end start
|