注册 登录
编程论坛 汇编论坛

为什么罗云彬的程序,我运行有错误?

lishizelibin 发布于 2009-08-23 20:33, 769 次点击
.386 <br>  .model flat, stdcall <br>  option casemap :none   ; case sensitive <br> <br>include  windows.inc <br>include  kernel32.inc <br>includelib kernel32.lib <br> <br>  .data <br> <br>szCaption  db 'Win32汇编例子',0 <br>szText  db 'Win32汇编,Simple and powerful!',0 <br> <br>  .code <br> <br>start: <br>  invoke MessageBox,NULL,addr szText,addr szCaption,MB_OK <br>  invoke ExitProcess,NULL <br> <br>  end start <br> <br>我用ml /c /coff xx.asm <br>
错误:undefined&amp;nbsp;symbol&amp;nbsp;:MessageBOX<br><br>[<i>&amp;nbsp;本帖最后由&amp;nbsp;lishizelibin&amp;nbsp;于&amp;nbsp;2009-8-23&amp;nbsp;22:15&amp;nbsp;编辑&amp;nbsp;</i>]

[ 本帖最后由 lishizelibin 于 2009-8-23 22:16 编辑 ]
3 回复
#2
lonmaor2009-08-23 20:41
程序没问题,应该是编译命令的问题。看罗的书关于编译的部分吧。
#3
lishizelibin2009-08-23 21:03
好像不是这样的,很怪,我的这个下面程序运行也有错:
.model small
.386
.stack 64
.data
 disp db '12345678H+11111111H=','$'
 sum dd ?
.code
.startup
 mov eax,12345678H
 add eax,11111111H
 lea esi,sum
 mov [esi],eax
 mov ah,9
 lea dx,disp
 int 21h
 mov ebx,[esi]
 mov cx,8
c0:
    rol ebx,4
    mov dl,bl
    and dl,0fh
    or  dl,30h
    cmp dl,3ah
    jl  c1
    add dl,7
c1:
    mov ah,2
    int 21h
    loop c0
    mov ah,2
    mov dl,'H'
    int 21h
    .exit
    end
错误是:error:Segment reference in fixup record
#4
lishizelibin2009-08-23 21:06
这个我知道了,不能link16bit程序
以下是引用lishizelibin在2009-8-23 21:03的发言:好像不是这样的,很怪,我的这个下面程序运行也有错:.model small.386.stack 64.data disp db '12345678H+11111111H=','$' sum dd ?.code.startup mov eax,12345678H add eax,11111111H lea esi,sum mo ...
1