首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >汇编程序上的代码“初始化值过大而不是指定大小”的问题

汇编程序上的代码“初始化值过大而不是指定大小”的问题
EN

Stack Overflow用户
提问于 2021-11-02 16:15:22
回答 1查看 35关注 0票数 0

代码的工作方式如下:它解决了以下问题"2d/a-21bd“。然后,它应该打开一个消息框,其中显示结果。以下是代码:

代码语言:javascript
复制
;include \masm64\include64\masm64rt.inc
.data         ;data for the code    
a dq  1       ;operand a  
b dq 0        ;operand b
c dq 21       ;number 21
d dq 5        ;operand d
q dq 2        ;number 2
res dq 0      ;result
title1 db "Решение уравнения. masm64",0                     ;title for the message box
txt1 db "Уравнение 2d/a-21bd",10,
"Результат: %d",10,"Адрес переменной в памяти: %ph",10,10,
"Автор:Тарадай Святослав",0                                 ;text for the message box
buf1 dq 3 dup(0),0                                          ;sorry, i don't know what does this code do. if you can say, i'll be happy
.code                       ;code area. solving a problem 2d/a-21bd         
entry_point proc
mov rax ,b          ;moving operand b to rax to make a second part of a problem
mul c               ;multiplying on 21
mul d               ;multiplying on d, or 5
mov rsi, rax        ;moving the result to rsi
mov rax,d           ;moving operand d, or 5 to rax, making a first part of the problem
mul q               ;multiplying on 2
xor rdx,rdx         ;preparing rdx to division
div a               ;division on a, or 1
sub rax,rsi         ;substraction of rsi(21bd) from rax(2d/a)
mov res,rax         ;moving result on res
invoke wsprintf,ADDR buf1,ADDR txt1,res, ADDR res1           ;transform function
invoke MessageBox,0,ADDR buf1,ADDR title1,MB_ICONINFORMATION ;output function
invoke ExitProcess,0
entry_point endp         
end                             

但是,我在调用方面有以下错误:

代码语言:javascript
复制
 Assembling: C:\masm64\bin64\a1.asm
C:\masm64\bin64\a1.asm(27) : error A2071:initializer magnitude too large for specified size
C:\masm64\bin64\a1.asm(27) : error A2008:syntax error : invokeC:\masm64\bin64\a1.asm(28) : error A2071:initializer magnitude too large for specified size
C:\masm64\bin64\a1.asm(28) : error A2008:syntax error : invokeC:\masm64\bin64\a1.asm(29) : error A2071:initializer magnitude too large for specified size
C:\masm64\bin64\a1.asm(29) : error A2008:syntax error : invokeLINK : fatal error LNK1181: cannot open input file 'C:\masm64\bin64\a1.obj'

如果你能帮我这个忙,因为我是个新的汇编程序,我会很高兴的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-26 07:45:45

问题在于编译。我使用了makeit.bat wit。只需将其更改为简单的makeit.bat就可以解决这个问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69813670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档