王爽汇编实验9 - call(一段字符串)

/*   编程: 在屏幕中间分别显示    绿色、绿底红色、白底蓝色  的字符串 ‘welcome to masm!’
*    数据的组织
*    数据的处理     一个字符在屏幕上占用2个字节   低地址存放字符的ASCⅡ码  高地址存放字符的属性

*/

assume   cs:code,ds:data,ss:stack

data segment 
      
	       db            'welcome to masm!'               //ds:[si]
		   
		   db            00000010B                        //绿色          //0000   0000
		   db            00100100B                        //绿底红色      // rgb    rgb
		   db            01110001B                        //白底蓝色
		   
data ends		   
		   

code  segment
 
start:      mov ax,stack
			mov ss,ax
			mov sp,128	


//逻辑上的切割   call指令
       
			call init_reg

			call show_masm	
			   
			mov ax,4c00h
			int 21h

//显示内容	
/*==========================================================================================*/

show_masm:	mov si,0               //字符串(内容)的起始地址
			mov di,160*10 + 2*30   //字符在屏幕上的显示位置   第10行30列(67C)   偶数地址
			mov bx,16              //属性的起始地址		
			mov dx,0               //存放字符属性

			mov cx,3
			
	s0:		push bx
			push cx
			push si
			push di
						
			mov cx,16
			mov dh,ds:[bx]         // mov es:[di],dx     es:[di+0],dl  ASCⅡ码   es:[di+1],dh 字符属性 
						
	s:		mov dl,ds:[si]
			mov es:[di],dl
			add di,2
			inc si
			loop s

			pop di
			pop si
			pop cx
			pop bx
			add di,160
			inc bx                  //改变一个字节,切换下一个属性
			loop s0

            ret
			
//显示内容	
/*==========================================================================================*/
init_reg:   mov bx,data            //数据从哪里来
            mov ds,bx		
		   
		    mov bx,0B800h          //数据到哪里去
            mov es,bx

            ret			
  

code ends


end start		
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
		   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值