|
主题 : : 自己写的实验9 [待解决] |
回复[ 1次 ]
点击[ 181次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-12-07 18:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-12-04 20:54 |
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 | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-12-07 18:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-12-04 20:54 |
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
不好意思,搞错了! | | |
|