注册 登录
编程论坛 汇编论坛

求教:编程在屏幕中间显示welcome to masm!为什么第一个字母显示不出来

sst99975 发布于 2011-11-28 09:22, 1139 次点击
代码如下:在XP中的DOS下运行debug追踪为什么第一个字母“w”显示不出来
assume cs:code

data segment
    db 'welcome to masm!'
data ends
code segment
start:    mov ax,0b800h
    mov ds,ax
    mov ax,data
    mov es,ax
    mov bx,780h
    mov si,0
    mov di,0
    mov cx,16
s:
    mov al,es:[si]
    mov [bx+di+84],al
    mov byte ptr [bx+di+85],72h
    mov [bx+0a0h+di+84],al
    mov byte ptr [bx+0a0h+di+85],24h
    mov [bx+140h+di+84],al
    mov byte ptr [bx+140h+di+85],71h
    inc si
    add di,2
    loop s
    mov ax,4c00h
    int 21h
code ends
end start

[ 本帖最后由 sst99975 于 2011-11-28 09:45 编辑 ]
3 回复
#2
zaixuexi2011-11-28 10:19
因为追踪的时候你的DEBUG信息覆盖了你的打印信息吧,代码没什么问题
#3
sst999752011-11-29 10:18
谢谢指教
#4
powlin19912012-03-22 09:30
以下是引用sst99975在2011-11-28 09:22:32的发言:

代码如下:在XP中的DOS下运行debug追踪为什么第一个字母“w”显示不出来
assume cs:code

data segment
    db 'welcome to masm!'
data ends
code segment
start:    mov ax,0b800h
    mov ds,ax
    mov ax,data
    mov es,ax
    mov bx,780h
    mov si,0
    mov di,0
    mov cx,16
s:
    mov al,es:[si]
    mov ,al
    mov byte ptr ,72h
    mov ,al
    mov byte ptr ,24h
    mov ,al
    mov byte ptr ,71h
    inc si
    add di,2
    loop s
    mov ax,4c00h
    int 21h
code ends
end start

请问没有输出的语句,welcome to masm!是如何出现的呢?我还没学到这里,但试了一下代码,发现运行正常就好奇来问问,可以粗略解释下么?
1