问题标签 [masm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - MASM 中的长代码长度错误?
我目前正在开发一个相当大的汇编程序,它是一个聊天机器人。它目前跨越 700 多行代码。在我的程序中,我有两个标签,我的程序使用这些标签来跟踪以随机方式移动的某些数据。
让我向你解释发生了什么。程序要做的工作很大,所以我倾向于将这些代码切成小块。我为我的程序需要的所有功能创建单独的项目,当它们工作时,我将它们包含在主程序中。
我刚刚完成了其中一个功能,并将其集成到我的程序中。该功能介于我之前告诉过您的两个标签之间。
当我尝试编译程序时,我收到一条错误消息:
ChatterBot.asm<22>:不明符号:EEEndLenght(这是第二个标签的名称)
标签在第 655 行更远的 633 行,如果我再次删除该函数,错误就会消失,我确定新函数中不会出现相同的标签,我已经多次更改它的名称
有谁知道为什么会发生这种情况以及我该如何解决?
概述:
编辑:现在我是这样看的,我想我已经找到了问题所在,结束 main - 那是错误的。我很抱歉浪费你们的时间,确实是 :end main 搞砸了。
windows - masm32和masm的区别?
我正在尝试学习 windows 的组装,并看到有 2 个组装器:
masm:https ://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64
masm32:http : //masm32.com/index.htm
这些是等价的吗?我应该选择哪一个来学习 windows 组装?
c - 将 C 代码转换为汇编
我需要将此 C 代码翻译成汇编语言代码
我真的只需要知道如何将变量与汇编语言中的字符串结合起来,就像上面的 C 代码一样。我想我可以处理其他所有事情。谁能告诉我。我是否必须使用某种参考[]。
注意我正在使用 MASM 并使用 Kip Irvine's Assembly Language for x86 处理器第 6 版书
更新我试图从回答者的答案之一写入 MASM 的代码,我不断收到错误消息。就像我在使用 Kip Irvine 的汇编语言之前所说的那样,所以我必须包含库链接 INCLUDE Irvine32.inc
这是错误>>>> programb.obj:错误 LNK2019:未解析的外部符号 _scanf 在函数 _main@0 中引用
包括 Irvine32.inc
有人可以帮我解决这个问题吗
我很抱歉汇编语言代码....我不知道如何格式化它以便更容易阅读....
winapi - 错误 LNK2001:无法解析的外部符号 _MessageBox
我正在尝试仅使用 masm 而不是 masm32 库创建一个 helloworld 程序。这是代码片段:
我可以使用 masm 组装它:
但是,我无法链接它:
我在链接期间包含了库,所以不知道为什么它仍然显示未解析的符号?
更新:
更新 2:最终工作代码!
assembly - masm 如何在变量定义中使用符号名称?
在 .data 部分我已经定义:
但是我怎样才能设置一个等于 MyString 的变量?
谢谢!
assembly - 压缩十进制到 ascii 程序集
我正在尝试将压缩十进制数转换为 ascii 字符串。到目前为止,这是我的理解:
以下:
“解包”后应转换为十进制数 34。现在我不确定这样做的最佳方式。如果我将此十六进制数转换为二进制,则如下...
现在,如果我的程序一次打印出每个 4 位二进制值,那么它应该打印 ascii 数字字符串,对吗?所以如果我通过一个循环,获取第一个 4 位二进制数,打印出它的实际值,它会打印 3.. 然后做同样的事情,它会打印 4。
所以,这是我的一般想法:
取一个 8 位值“34h”,将其移动到 AH 和 AL 中。在 AH 中,使用以下命令清除后半部分:
在 AL 中,使用以下命令清除前半部分:
所以 AH = 0110b 或 3 和 AL = 0100b 或 4,然后相应地打印出来..
这是一个好方法吗?还是我的想法完全不正确或过度思考?
编辑:这是我的最终解决方案,原始值为 12345678h。感谢所有帮助过的人!
磷
assembly - INVOKE MASM 自动保存寄存器?
当我在 masm 中使用 Invoke 指令时,是否可以自动保存 cpu 寄存器?
masm - MASM611中的乘法
嗨,我在 MASM611 中工作的 5 位以上的乘法有问题,请告诉我 MASM611 中至少 8 位乘法的解决方案
c++ - 为什么 __int16 和 int (32) 用 C++ 生成不同的 asm?
我最近开始学习 masm 汇编,我一直在反汇编我的许多程序只是为了看看。我注意到,当您使用 __int16 (字)时,它的值首先复制到 eax 然后复制到变量本身,但是使用 int (dword/32) 它直接复制到变量中:这是两者的反汇编代码
我注意到 __int16 的大小为 16 ......这是 eax 大小的一半,这就是为什么它先放入 eax 然后才将 ax 放入 x 的原因吗?
另外,哪个最快?
有什么好的masm网站可以推荐吗?
感谢您的输入
assembly - 我的第一次装配练习
我在 Visual Studio 2005 下使用程序集(我是新手),我想创建一个程序,使用该规则计算算术级数:A n = 2*A n-1 + An n-2 但是。我真的不知道如何使用寄存器,我只需要你的一个例子来继续我的练习。
这是我的代码: