马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
assume cs:codesg,ds:datasg,ss:stacksg
stacksg segment
dw 10 dup(0)
stacksg ends
datasg segment
db 'Welcome to masm!',0
datasg ends
codesg segment
start:
mov ax,datasg
mov ds,ax
mov ax,stacksg
mov ss,ax
mov sp,10
mov si,0
mov dh,0 ;[0,24]行
mov dl,79 ;[0,79]列
mov cl,01001001b
call show_str
mov ax,4c00h
int 21h
show_str:
mov bl,cl
mov ax,0B800h
mov es,ax
mov al,160
mul dh
add dl,dl
mov dh,0
add ax,dx
add ax,160 ;这里要加上160
mov di,ax
mov ch,0
loop1:
mov cl,ds:[si]
jcxz ok
mov es:[di],cl
inc di
mov byte ptr es:[di],bl
inc di
inc si
jmp loop1
ok:
ret
codesg ends
end start
用以上的代码在指定位置显示字符串
明明在debug时算出的偏移地址是正确的,但还是要加上A0h才能正常显示
并且最底端一行不管加不加0Ah都无法正常显示
请问如何解决
|