王爽汇编第10章,第一个打印题。自己是用工作以外的时间学汇编,有点慢。不过,贵在坚持。相信自己。不久要出差,希望项目顺利点。

 

assume cs:codesg

datasg segment
    db 'Welcome to Masm!',0
datasg ends

stacksg segment
    dw 32 dup(0)
stacksg ends

codesg segment
    start:
    mov dh, 8
    mov dl, 3
    mov cl, 3
    mov ax, stacksg
    mov ss, ax
    mov sp, 32
    mov ax,datasg
    mov ds, ax
    mov si, 0
    call show_str
    mov ax, 4c00h
    int 21h
    
show_str:

    push ax
    push bx
    push es
    push di
    push si
    push cx
    ;push dx
    
    ; 计算偏移量
    mov al, 160
    mul dh
    mov bx, ax
    mov al, 2
    ;mov dl, 2
    mul dl
    add bx, ax
    ; 偏移量存储在bx中
    mov ax, 0b800h
    mov es, ax
    mov di, 0
    mov ah, cl
    mov ch, 0
print:
    mov cl, ds:[si]
    jcxz back
    mov al, cl
    mov es:[bx + di], ax
    ;mov es:[bx + di +1], al
    add di, 2
    inc si
    jmp short print
    
back:
    ;pop dx
    pop cx
    pop si
    pop di
    pop es
    pop bx
    pop ax
    ret
    

codesg ends
end start

posted on 2014-05-01 20:47  Notflybird  阅读(158)  评论(0)    收藏  举报