assume cs:code
data segment
db 'welcome to masm!'
data ends
code segment
start: mov ax,data
mov es,ax
mov ax,0b800h
mov ds,ax
mov ax,0
mov bx,0
mov si,0
mov cx,16
s: mov al,es:[si] ;根据材料应该取1832,1992,2152(下面3数也相应加2)才是屏幕 mov 1830[bx],al ;中间但我觉得这样取才在中间,否则有一点偏右,不知何故?
mov 1990[bx],al
mov 2150[bx],al
mov byte ptr 1831[bx],00000010b
mov byte ptr 1991[bx],00100100b
mov byte ptr 2151[bx],01110001b
add bx,2
inc si
loop s
mov ax,4c00h
int 21h
code ends
end start
;由题意可知,在显示页面0相关存储空间前面有11行(0-10)再加72列(0-71),折合字节为:
; 11*160+72=1832
; 莫非因为字节是从0编号之故?哦,对了要把多加的两个‘0’减掉,所以是1830 |