Programming 笔记

工作中遇到的问题就记载这里

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

自己写的,可以实现练习题的要求,而且个人感觉比网上常见的答案还精炼一些。

assume cs:codesg, ds:data
data segment
    db 
'welcome to masm!'
    db 
00000010B,00100100B,01110001B 
    dw 0b86eh,0b878h,0b882h  
data ends
 
codesg segment
start:  
    
mov cx, 3    
    
s1:      
        
mov ax, data ;set data address
        mov ds, ax         
        
mov si, cx   ;set line in ds
        mov ah, data:[15+si]  ;get font 00000010B,00100100B,01110001B
        ADD si,cx    ; Set si to be 6,4,2
        mov ss, data:[17+si] ;get line position of 0b86eh,0b878h,0b882h        push cx
        
mov cx, 16
        
mov bx, 0
        
mov si, 0   
        
s:     
            
mov al, ds:[bx];individual char from 'welcome to masm!' 
            mov ss:[si+40], ax ; this DX should 'line position'    
            inc bx
            
add si, 2
        loop s
        
pop cx 
    loop  s1
    
mov ax, 4c00h
    
int 21h
codesg ends

end start 

posted on 2011-08-02 19:13  IT 笔记  阅读(361)  评论(0编辑  收藏  举报