+ -
当前位置:首页 → 问答吧 → 帮下忙了!input未定义,为什么?

帮下忙了!input未定义,为什么?

时间:2011-06-07

来源:互联网

;-------------display the string------
 disp macro messg
  mov ah,09h
  lea dx,messg
  int 21h
  endm
 ;-------------------------
 data segment
  messg1 db "Name:","xujuan",0dh,0ah,"$"
  messg2 db "Number:","40912146",0dh,0ah,"$"
  ;used for son
  messg3 db "input names:","$"
  messg4 db "inpution done.","$"
  namepar label byte
  maxnlen db 6
  namelen db ?
  name db 6 dup(?)

 data ends


   
 ;-------------------------------
 code segment
  assume cs:code,ds:data
 start:
  mov ax,data
  mov ds,ax
  disp messg1
  disp messg2
  call input
  mov ah,4ch
  int 21h
 code ends
  end start
 ;-------------------------

;---------son-------
 input: proc far
  disp messg3 ;warning information
  mov ah,0ah
  lea dx,namepar
  int 21h
  mov bh,0
  mov bl,namelen
  mov cx,06h
  sub cx,bx
  next:
  mov name[bx],20h
  inc bx
  loop next
  ret
 input endp
;-----------------------------

作者: xuexizhejiayou   发布时间: 2011-06-07

全都TM的是语法错误,真服了你了。
那个input要放在code段里,放到mov ax,4C00H int 21H之后就行了,这么小的东西还是定义成near吧,far基本用不到,或者不用near或者far。还有name是关键字,把name换成别的。
end start之后的任何东西编译器都不会处理了。

作者: MHBBCRCPJ   发布时间: 2011-06-08