-1
.model small

.stack 200h

.data   

string1 db 'wahab $'

.code

main proc 

    mov ax,@data
    mov ds,ax
    mov ax,0b800h 

    mov es,ax  

    mov ax,offset string1 
    mov si,ax 
    mov di,0

    l1:

    mov ax,[si]

    mov es:[di],ax 
    inc si
    inc di

    cmp ax,'$'
    jne l1           

    main endp

只有三个字符显示在屏幕或显存上?

4

1 回答 1

1

显存是字对齐的。偶数字节是要显示的字符,奇数字节是颜色属性。因此,当您mov [es:di], ax对视频内存段进行处理时,AL保存一个要显示的字符,以及AH- 该字符的颜色。

l1:

mov al,[si]

mov es:[di],al 
inc si
add di, 2

cmp al,'$'
jne l1
于 2015-03-31T19:28:46.983 回答