包含Irvine32.inc报错的问题

注:目前开通个人网站朝思录,之后的博文将在上面更新,CSDN博客会滞后一点


之前学汇编使用了作者提供的Irvine32库,但总是报错如下:

1>c:\Irvine\SmallWin.inc(11): error A2071: initializer magnitude too large for specified size
1>c:\Irvine\SmallWin.inc(11): warning A4011: multiple .MODEL directives found : .MODEL ignored
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\masm.targets(50,5): error MSB3721: 命令“ml.exe /c /nologo /Sg /WX /Zi /Fo"Debug\Chapter5.obj" /Fl".lst" /I "c:\Irvine" /W3 /errorReport:prompt  /Ta"..\..\..\Users\Eastwind\Do
cuments\《汇编语言-基于x86处理器》资料\Test\Chapter5.asm"”已退出,返回代码为 1。

这个错误的出现是因为在程序中出现了这样的语句:

.386
.model flat, stdcall
.stack 4096
ExitProcess PROTO, dwExitCode:DWORD

貌似Irvine32.inc已经包含以上语句了,如果再包含,会出现重复。所以删掉它就好了。


另附可用的包含Irvine32.inc的代码如下(书上例程),其功能是改变控制台窗口颜色,并可以以十进制方式输入4个32位数字,显示它的Dec,Hex,Bin:

include Irvine32.inc

.data
COUNT = 4
BlueTextOnGray = blue + (lightGray * 16)
DefaultColor = lightGray + (black * 16)
arrayD SDWORD 12345678h,1A4B2000h,3434h,7AB9h
prompt BYTE "Enter a 32-bit signed integer: ",0
.code
main PROC
    mov eax,BlueTextOnGray
    call SetTextColor
    call Clrscr

    mov esi,OFFSET arrayD
    mov ebx,TYPE arrayD
    mov ecx,LENGTHOF arrayD
    call DumpMem

    call Crlf
    mov ecx,COUNT

L1: mov edx,OFFSET prompt
    call WriteString
    call ReadInt
    call Crlf

    call WriteInt
    call Crlf
    call WriteHex
    call Crlf
    call WriteBin
    call Crlf
    call Crlf
    loop L1

    call WaitMsg
    mov eax,DefaultColor
    call SetTextColor
    call Clrscr

    exit

main ENDP
END main

运行结果如下图:
这里写图片描述


注:书是《汇编语言-基于x86处理器》

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值