主题:我是初学者,帮忙看看一个小问题
vfdff
[专家分:740] 发布于 2005-10-12 23:20:00
stack segment stack
dw 100 dup (?)
stack ends
data segment
x1 db 'please input a letter','$' ;必须'$'结尾
x2 db 'zhongyunde','$' ;
data ends
code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov ds,ax
mov ah,1h
int 21h
cmp al,0
jz start
call far ptr xx2
code ends
xx2 proc far
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
mov dx,offset x2
mov ah, 9h
int 21h
ret
xx2 endp
end start
下面是出错提示
data emitted with no segment??
不知为什么有问题?
回复列表 (共17个回复)
11 楼
vfdff [专家分:740] 发布于 2005-11-23 22:59:00
我只想练习使用子程序而已
谢谢讨论
12 楼
wangcj2416 [专家分:20] 发布于 2005-12-01 21:37:00
stack segment stack
dw 100 dup (?)
stack ends
data segment
x1 db 0dh,0ah,'please input a letter',0dh,0ah,'$' ;必须'$'结尾
x2 db 0dh,0ah,'zhongyunde',0dh,0ah,'$' ;
data ends
code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov ds,ax
mov ah,1h
int 21h
cmp al,'0'
jz lop
mov dx,offset x1
jmp exit
lop:mov ax,data
mov ds,ax
mov dx,offset x2
exit:mov ah, 09h
int 21h
jmp start
code ends
end start
13 楼
vfdff [专家分:740] 发布于 2006-03-10 18:07:00
jz start
call far ptr xx2
code ends
对主段缺少返回
应该是:
jz start
call far ptr xx2
mov ah,1h
int 21h
ret
code ends
14 楼
vfdff [专家分:740] 发布于 2006-03-10 18:35:00
stack segment stack
dw 100 dup (?)
stack ends
data segment
x1 db 'please input a letter','$'
;必须'$'结尾
x2 db 'zhongyunde','$' ;
data ends
code segment
assume cs:code,ds:data,ss:stack
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
mov ah,1h
int 21h
cmp al,0
jz start
call far ptr xx2
mov ah,1h
int 21h
ret
xx2 proc ;far
;mov ax,data
;mov ds,ax
mov dx,offset x2
mov ah, 9h
int 21h
ret
xx2 endp
code ends
end start
谢谢大家的帮助
现在修改后,在MASM 5.0上通过拉 !!
15 楼
ellipse [专家分:0] 发布于 2006-03-25 09:31:00
stack segment stack
dw 100 dup (?)
stack ends
data segment
x1 db 'please input a letter','$' ;必须'$'结尾
x2 db 'zhongyunde','$'
data ends
code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov ds,ax
mov ah,1h
int 21h
cmp al,0
jz start
call far ptr xx2
code ends
xx2 proc far
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
mov dx,seg x2
mov ds,dx
mov dx,offset
mov ah, 9h
int 21h
ret
xx2 endp
end start
16 楼
ellipse [专家分:0] 发布于 2006-03-25 09:33:00
stack segment stack
dw 100 dup (?)
stack ends
data segment
x1 db 'please input a letter','$'
x2 db 'zhongyunde','$' data ends
code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov ds,ax
mov ah,1h
int 21h
cmp al,0
jz start
call far ptr xx2
code ends
xx2 proc far
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
mov dx,seg x2
mov ds,dx
mov dx,offset
mov ah, 9h
int 21h
ret
xx2 endp
end start
[em4][em4][em5]
17 楼
vfdff [专家分:740] 发布于 2006-05-01 19:43:00
现在好久没有用
汇编拉
真的不记得以前问的现在搞不懂拉
我来回复