|
主题 : : 实验9,好像没看到有人用我的方法啊,大家提提意见吧 :( [待解决] |
回复[ 5次 ]
点击[ 380次 ] | |
荣誉值:0
信誉值:0
注册日期:2008-07-08 15:45 |
assume cs:codesg,ds:datasg
datasg segment
dw 'W','e','l','c','o','m','e',' ','t','o',' ','m','a','s','m','!'
dw 'W','e','l','c','o','m','e',' ','t','o',' ','m','a','s','m','!'
dw 'W','e','l','c','o','m','e',' ','t','o',' ','m','a','s','m','!'
;直接以字为单位表示字符串
datasg ends
codesg segment
start:
mov ax,datasg
mov ds,ax
mov bx,1
mov cx,16
S0:
mov byte ptr ds:[bx],00000010B
mov byte ptr ds:[32+bx],00100100B
mov byte ptr ds:[64+bx],01110001B
add bx,2
loop S0
;修改字符串高位属性值
mov ax,80
sub ax,16
mov bl,2
div bl
mov ah,0
mov si,ax;计算列位置
mov ax,25
sub ax,3
mov bl,2
div bl
mov ah,0
mov cx,ax
S1:
add si,160
loop S1;加上行位置
mov ax,0B800H
mov es,ax
mov di,0
mov cx,16
S2:
mov ax,ds:[di]
mov es:[si],ax
mov ax,ds:[32+di]
mov es:[160+si],ax
mov ax,ds:[64+di]
mov es:[320+si],ax
add si,2
add di,2
loop S2
;输出到显存
mov ax, 4c00h
int 21
codesg ends
end start | | |