CALL通不过编译器问题

GGJJyangjinhan 2009-03-13 08:54:38
书上有段程序,需要调用很多库文件里的代码。在我代买全部输入正确时。可就是通不过MASM6.0的编译。这可怎么办
...全文
81 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
BAYNPU 2009-03-16
  • 打赏
  • 举报
回复
去看看吧:一定要这文件IRVINE32.INC调到当前目录下,否则汇编无法通过.
INCLUDE Irvine32.inc
.data
intArray SWORD 0,0,0,0,1,20,35,-12,66,4,0
;intArray SWORD 1,0,0,0
;intArray SWORD 0,0,0,0
;intArray SWORD 0,0,0,1
noneMsg BYTE "A non-zero value was not found",0
.code
main PROC
mov ebx,OFFSET intArray
mov ecx,LENGTHOF intArray
L1:
cmp WORD PTR [ebx],0
jnz found
add ebx,2
loop L1
jmp notFound
found:
movsx eax,WORD PTR [ebx]
call WriteInt
jmp quit
notFound:
mov edx,OFFSET noneMsg
call WriteString
quit:
call crlf
exit
main ENDP
END main
GGJJyangjinhan 2009-03-16
  • 打赏
  • 举报
回复
INCLUDE irvine32.inc

data SEGMENT
Array SWORD 0,0,0,0,1,20,35,-12,66,4,0
;Array SWORD 1,0,0,0
;Array SWORD 0,0,0,0
;ArraY SWORD 0,0,0,1
nonemsg byte 'A non-zero value was not found',0.

data ENDS
CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:
MOV EDX,OFFSET Array
MOV ECS,LENGTHOF Array

L1 CMP WORD PTR [EDX],0
JNZ FOUND
ADD EDX,2
LOOP L1
JMP NOTFOUND

FOUND: MOVSX EAX,WORD PTR [EDX]
CALL WRITESTRING
JMP QUIT

NOTFOUND: MOV EDX,OFFSET NONEMSG
CALL WRITESTRING
QUIT: CALL CRIF

CODE ENDS
END START
BAYNPU 2009-03-13
  • 打赏
  • 举报
回复
可能是32位的汇编吧。
把代码贴出来看看吧。
killbug2004 2009-03-13
  • 打赏
  • 举报
回复
检查代码是否完整,调用到外部文件要在编译时声明一把,链接是链接对应的库

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧