主题:为什么没输出的?
301boy
[专家分:220] 发布于 2006-04-16 13:19:00
刚学汇编,不懂下面的程序为什么没输出‘hello world’.
stack segment stack
db 100 dup(?)
stack ends
data segment
a db 'hello world$'
data ends
code segment
assume ss:stack,ds:data,cs:code
start: mov ah,09
mov dx,offset a
int 21
int 20
code ends
end start
回复列表 (共7个回复)
沙发
p1s [专家分:4100] 发布于 2006-04-16 13:32:00
ds没有放好
stack segment stack
db 100 dup(?)
stack ends
data segment
a db 'hello world$'
data ends
code segment
assume ss:stack,ds:data,cs:code
start: mov ax,data
mov ds,ax
mov ah,09
mov dx,offset a
int 21
int 20
code ends
end start
板凳
newzp [专家分:200] 发布于 2006-04-16 13:35:00
stack segment stack
db 100 dup(?)
stack ends
data segment
a db 'hello world$'
data ends
code segment
assume ss:stack,ds:data,cs:code
start: mov ax,data
mov ds,ax
mov ah,09
mov dx,offset a
int 21h
mov ah,4ch
int 21h
code ends
end start
3 楼
301boy [专家分:220] 发布于 2006-04-16 14:12:00
这里不是已经定义了吗assume ss:stack,ds:data,cs:code。
为什么还要这两句,不明白这两句有什么用,
mov ax,data
mov ds,ax
4 楼
p1s [专家分:4100] 发布于 2006-04-16 16:11:00
assume只是关联,但是数据并没有放到ds里面去
我们要人工写代码放进去的
5 楼
qiuyishuaige [专家分:150] 发布于 2006-04-16 19:01:00
楼上的各位大哥
我就见过这样的汇编输出语句:
mov dl,
mov ah,2
int 21h
mov ah,09 和mov ah,2 有什么区别么?
6 楼
p1s [专家分:4100] 发布于 2006-04-16 19:34:00
mov ah,09是输出字符串,字符串首字母地址放DX
mov ah,02是输出字符,字符数据放DL
7 楼
wolfzy [专家分:40] 发布于 2006-04-16 19:58:00
assume只定义段寄存器,并不附植
我来回复