实验10
在屏幕8行3列,用绿色显示data段中的字符串
assume cs:code data segment db'Welcome to masm!',0 data ends code segment start: mov dh,8 ;行 mov dl,3 ;列 mov cl,2 ;颜色 mov ax,data mov ds,ax mov si,0 ;字符串首地址 call show_str mov ax,4c00h int 21h show_str: push ax ;用到的寄存器入栈 push bx push cx push dx push es push di mov ax,0B800h ;定义显示缓冲区的段地址 mov es,ax ;N为行,M为列 ;计算写入首地址的偏移地址 公式:1) 0A0H*(N)+M*2 mov al,dh mov ah,0 mov bl,0A0h ;每行偏移A0H mul bl mov bl,dl mov bh,0 add ax,bx add ax,bx mov di,ax ;ax为首地址的偏移地址 mov dl,cl ;dl存颜色 mov ch,0 nx: mov cl,ds:[si] ;判断字符是否为00 jcxz over mov bl,cl mov bh,dl mov es:[di],bx ;赋值 add si,1 add di,2 jmp short nx over: pop di pop es pop dx pop cx pop bx pop ax ret code ends end start