Windows汇编带颜色显示Hello World

;将codesm段与cs寄存器关联, 将data段与ds寄存器关联
assume cs:codesg, ds:data


;data段定义的开始
data segment                          
    ;定义一个word类型的变量hello,注意,必须要以'$'结束
    ;这是由DOS系统调用决定的。
    
    ;在使用9号功能调用时,应当注意以下问题。
    ;① 待显示的字符串必须先放在内存一数据区(DS段)中,且以‘$’符号作为结束标志。
    ;② 应当将字符串首地址的段基址和偏移地址分别存入DS和DX寄存器中。
    ;
    hello dw 'Hello World Assmble','$'

;data段定义的结束    
data ends
                 
    
;code段定义的开始                 
code segment
         
    ;整个程序的开始     
    start:         
     
        ;将data处的首地址存放在ax中
        mov ax, data               
        
        ;将ds设置为ax中的内容,即data处的首地址
        mov ds, ax
        
        ;设置为滚动窗口
        mov ax, 0600H  
        
        ;设置绿底红字 红底闪烁绿字
        ;BH中的8位中各位的意义:
        ;模式为: BL    R G B    I    R G B
        ;       (闪烁)  (背景) (高亮) (前景)
        mov bh, 11000010B  
        
        ;窗口左上角行列值
        mov cx, 050aH  
        
        ;窗口右下角行列值
        mov dx, 0a30H  
        
        ;调用BIOS,显示模式为:640×350   4色
        int 10H
                 
        ;设置光标位置
        mov ah, 2    
        
        ;行列坐标
        mov dx, 0714H
        
        ;页号
        mov bh, 0
        
        ;调用BIOS,显示模式为:640×350   4色
        int 10H
                                     
        
        ;将要显示的变量的偏移地址放进dx中
        mov dx, offset hello 
         
        
        ;调用DOS的9号功能调用,即显示字符串功能
        mov AH, 9H
        int 21H              
        
        ;调用DOS的4CH号的功能调用,即程序返回功能
        mov AH, 4CH
        int 21H

        
;code段定义的结束        
code ends      


;整个程序的结束
end start


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值