关于一个简单程序我是新人多谢多谢 [
assume cs:code,ds:data
data segment
msg db "hello world"
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,0b800h
mov es,bx
mov cx,11
mov si,0
mov bx,0
mov ah,01000010b
s:mov al,ds:
mov es:,al
mov es:,ah
inc si
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
请问一下,以上代码为什么不能输出hello world呢~ assume cs:code,ds:data
data segment
db "hello world"
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,0b800h
mov es,bx
mov cx,11
mov si,0
mov bx,0
mov ah,00000010b
s:mov al,ds:
mov es:+160],al
mov es:+161],ah
inc si
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
因为楼主 你默认选择的是从第一行 第一列开始输出
但是! 因为在dos窗口下, 每运行一次, 屏幕都会上翻一行!
所以 要想看到屏幕上第一行输出东西, 最起码要在第二行输出, 而每一行是160个字节, 故而加
多谢,解决问题了~怎么给你分啊 那两个红色160太明显了,一眼就看到了,多谢多谢 {:1_1:} 666 {:1_1:}
页:
[1]