1. 显示字符串

名称:show_str

功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。

应用举例:在屏幕的8行3列,用绿色显示data段中的字符串。

直接贴代码:


  1. assume cs:code 
  2.  
  3. data segment 
  4.  
  5.    db 'Welcome to masm!',0 
  6.  
  7. data ends 
  8.  
  9. code segment 
  10.  
  11.    start: mov dh,8 
  12.           mov dl,3 
  13.  
  14.           mov cl,2 
  15.  
  16.           mov ax,data 
  17.           mov ds,ax 
  18.           mov si,0 
  19.  
  20.           call show_str 
  21.  
  22.           mov ax,4c00h 
  23.           int 21h 
  24.  
  25.  
  26. show_str: push bx 
  27.           push dx 
  28.           push si 
  29.           push di 
  30.           push ax 
  31.           push es 
  32.           push cx                     
  33.  
  34.           mov ax,0b800h 
  35.           mov es,ax 
  36.  
  37.           sub dl,1 
  38.           mov al,dl 
  39.           mov bl,160 
  40.           mul bl 
  41.  
  42.           mov di,ax 
  43.  
  44.           sub dh,1 
  45.           mov al,dh 
  46.           mov bl,2 
  47.           mul bl 
  48.  
  49.           add di,ax 
  50.            
  51.           mov ah,cl 
  52.  
  53.     show: mov cl,[si] 
  54.           mov ch,0 
  55.           jcxz ok 
  56.  
  57.           mov al,[si] 
  58.           mov byte ptr es:[di],al 
  59.           mov byte ptr es:[di+1],ah 
  60.  
  61.           inc si 
  62.           add di,2 
  63.  
  64.           jmp short show 
  65.  
  66.       ok: pop cx 
  67.           pop es 
  68.           pop ax 
  69.           pop di 
  70.           pop si 
  71.           pop dx 
  72.           pop bx 
  73.            
  74.           ret 
  75.  
  76. code ends 
  77.  
  78. end start 

运行结果如下图所示:

汇编 实验10 编写子程序(一)