使用调用DumpRegs时出现MASM32错误

时间:2015-03-10 00:19:49

标签: assembly masm irvine32

所以我浏览了一下网站并找不到问题的解决方案。我尝试添加以下行,这是其他人的问题的答案,但它对我不起作用。

includelib C:\full\path\to\Kernel32.Lib
includelib C:\full\path\to\User32.Lib
includelib C:\full\path\to\Irvine32.lib

; include C:\full\path\to\Irvine32.inc

这是我的整个代码。

includelib C:\Irvine\Irvine32.inc
includelib C:\Irvine\Kernel32.Lib
includelib C:\Irvine\User32.Lib
includelib C:\Irvine\Irvine32.lib

.386
.model flat,stdcall
.stack 4096
ExitProcess proto,dwExitCode:dword



.data
    num BYTE 126d
    num2 SBYTE -26d
    num3 WORD   692Ah
    num4 SWORD -32789
    num5 DWORD 12345678h
    num6 SDWORD -2147483648

.code
main proc
    mov al, num
    call DumpRegs   ; I get the error when I put this in.

    mov ah, num2
    mov cx, num3
    mov dx, num4
    mov eax, num5
    mov ebx, num6


    invoke ExitProcess,0
main endp
end main

这是我得到的输出。

  

1> ------构建开始:项目:项目,配置:调试Win32 ------   1 GT;组装.. \ ch03 \ AddTwo.asm ...   1> .. \ ch03 \ AddTwo.asm(25):错误A2006:未定义的符号:dumpRegs   1> C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V120 \ BuildCustomizations \ masm.targets(50,5):错误MSB3721:命令" ml.exe / c / nologo / Sg / WX / Zi /Fo" ;Debug; AddTwo.obj" /Fl"Project.lst" /我" c:\ Irvine" / W3 / errorReport:prompt /Ta..\ch03\AddTwo.asm"退出代码1。   ==========构建:0成功,1个失败,0个最新,0个跳过==========

2 个答案:

答案 0 :(得分:1)

我的教授告诉我要删除一些代码,这就是我剩下的

TITLE Add and Subtract          (AddSub.asm)

; This program adds and subtracts 32-bit integers.

INCLUDE Irvine32.inc

.data
    num BYTE 126d
    num2 SBYTE -26d
    num3 WORD   692Ah
    num4 SWORD -32789
    num5 DWORD 12345678h
    num6 SDWORD -2147483648

.code
main PROC

    mov al, num
    call DumpRegs

    mov ah, num2
    mov cx, num3
    mov dx, num4
    mov eax, num5
    mov ebx, num6

    exit
main ENDP
END main

我的代码可以使用。

他告诉我不要使用

.386
.model flat,stdcall
.stack 4096
ExitProcess proto,dwExitCode:dword

在我们的课程开始时。或者

invoke ExitProcess,0

最后。

答案 1 :(得分:0)

您没有包含足够的库或正确的库! 包含行中的错误。

  

; includelib C:\ masm615 \ Irvine \ Irvine32.inc;
  ; includelib C:\ masm615 \ Irvine \ Kernel32.Lib;
  ; includelib C:\ masm615 \ Irvine \ User32.Lib;
  ; includelib C:\ masm615 \ Irvine \ Irvine32.lib;
  包括irvine32.inc;这将包括所有内容;
  .386;
  .model flat,stdcall;
  .stack 4096   ExitProcess proto,dwExitCode:dword;
  ;
  .data;

      num BYTE 126d;
      num2 SBYTE -26d;
      num3 WORD 692Ah;
      num4 SWORD -32789;
      num5 DWORD 12345678h;
      num6 SDWORD -2147483648;
  ;
  .CODE;
  主要过程;
      mov al,num;
      调用DumpRegs;当我把它放入时我得到了错误。;
      mov啊,num2;
      mov cx,num3;
      mov dx,num4;
      mov eax,num5;
      mov ebx,num6;
  ;
      调用ExitProcess,0;
  主要结束;
  结束主;