masm相关内容

beetwen dw和db与dup在组装中有什么区别

我想知道这段代码和汇编语言中的这段代码有什么区别: db 2 dup(1fh)b dw 1fh,1fh 我认为第二个代码更好,而且我不知道为什么他们首先要编号. 解决方案 第二行等效于 db 1fh,0,1fh,0 ,因为DW的每个arg都是一个字长的整数.(而x86是little-endian) 第一行等效于 db 1fh,1fh . 要使用DW进行此操作,请使用 d ..
发布时间:2021-04-15 19:31:14 其他开发

"fh"是什么?后缀表示类似"38fh"的数字.在英特尔大会上

我已经在网上搜索了所有内容,但是在以下说明和eax 38fh 中找不到"fh"的含义.我知道"h"代表十六进制,"d"代表十进制,但是我从未见过fh. 解决方案 如果Intel汇编程序(即 MASM )令牌以数字(0到9)开头,则假定为整个令牌是一个值.如果该值以 h 结尾,则汇编程序会认为它是 H 十进制. 在您的情况下, 38fh 以数字开头,因此假定它是一个值.在您的情况下,令 ..
发布时间:2021-04-14 19:18:42 其他开发

在MASM程序集中逐字节循环和处理字符串

我正在使用MASM汇编,并且正在尝试编写一个逐字节处理字符串str1的循环,使用位操作将每个小写字母更改为相应的大写字母.如果这封信已经是大写字母,那就别说了.当我执行代码时,字符串str1似乎什么都没发生,并且我很难弄清为什么,也许我不应该这样处理我的数组,但是尽管如此,这还是代码: .386.模型平str1 dword"aBcD",cr,Lf,0.....代码_开始:输出str1** su ..
发布时间:2021-04-09 20:52:48 其他开发

对集合x86中的数组求和.在输入的索引上

我在添加数组但在输入的索引上遇到一些麻烦.例如,用户输入4作为开始数组,输入6作为结束数组,因此我将不得不遍历array [4]到array [6]并包括在内.我不确定是否可以在ArraySum过程的.data中使用数组.我是否必须以某种方式将其推入程序? 我正在为此使用Kip Irvine的外部库. 我的代码在这里: TITLE作业7包含Irvine32.inc.数据str1 B ..
发布时间:2021-04-09 20:02:29 其他开发

匿名本地标签(@@):哪些汇编程序支持多步引用,例如@FF(第二个下一个@@)?

在某些x86汇编方言中,可以使用@@:放置匿名本地标签,并像jmp @F这样在跳转中引用它们,其中@F表示“下一个@@",而@B表示“上一个@@". 以下是我在网上搜索时发现的来自Microsoft的描述: Q33067:匿名标签跳转说明 我使用预处理器的宏工具今天,我对MASM在处理匿名本地标签方面的差异(如果有的话)感到好奇.但是,我找不到任何明确表明MASM支持多步引用的信息.我 ..
发布时间:2021-02-15 20:43:10 其他开发

MASM:如何解决8086编程中的立即模式非法?

我正在解决汇编语言编程以添加BCD数字和两个ASCII数字的基本问题, 就是因为我必须使用 DAA和AAA 指令,现在我试图将存储在AX寄存器中的结果存储到所需的内存位置,但没有得到以下代码为什么给我错误的提示立即模式非法 下面是我到目前为止编码的代码,请帮助我,如何消除此错误 PS:我想将结果移至所需的内存位置,而不是任何特殊用途的寄存器 假设CS:CODE,DS:DATA 数据段 ..
发布时间:2020-10-25 22:58:22 其他开发

操作码中的汇编段

我注意到在程序集段中使用了操作码. 示例: MOV DWORD PTR SS:[EBP-30],30 我认为"PTR SS:"用于指定EBP-30来自堆栈吗? (SS:堆栈段) 我是对的还是我完全错了? :)而且,能否请您告诉我上面的示例与 之间的区别 MOV DWORD PTR[EBP-30],30 那么操作码中使用的DS(数据段)呢? 解决方案 MOV DWOR ..
发布时间:2020-09-12 23:17:23 其他开发

C ++ GCC内联汇编似乎不起作用

我正在尝试找出c ++上的gcc内联汇编.以下代码适用于不带%和其他操作数的Visual c ++,但我无法使其与gcc一起使用 void function(const char* text) { DWORD addr = (DWORD)text; DWORD fncAddr = 0x004169E0; asm( "push %0" "\n" ..
发布时间:2020-05-06 09:10:52 C/C++开发

将大寄存器移入小内存

我在理解PTR运算符时遇到了一些问题,我可以轻松地将大内存移到下面的小寄存器示例中: ax = small register which is 2 byte memory = variable which is 4 byte .data variable dword 05010h .code mov ax,WORD PTR variable 它将正常工作. 现在我的问题是我不明白为 ..
发布时间:2020-05-06 09:10:45 其他开发

将小写字母字符串转换为大写字母

有一条printf语句,告诉编译器打印outStr. outStr最初设置为等于emptybuf [1000] ="???尚未翻译???";.我应该将答案移至outStr,后者应更新print语句中的outStr. 由于某种原因,我的内联程序集无法从下面显示的代码中打印出任何内容.我不明白我在做什么错.我正在尝试将小写字母转换为大写字母,并忽略任何特殊字符.任何建议都将不胜感激. mo ..
发布时间:2020-05-06 09:10:39 其他开发

在MASM中获取结构尺寸

我想知道如何在MASM编译时获取结构的大小. 这是C的等效代码. struct Point { int x; int y; }; printf("Point Stucture size %d\n", sizeof(struct Point)); 解决方案 我假设您将在汇编代码中声明该结构. 根据masm32文档,您可以使用以下运算符给你: LENGTHOF v ..
发布时间:2020-05-06 09:10:34 其他开发

在汇编中写出一个寄存器

这次很简单的问题.我该如何编写屏幕程序集中单个寄存器内容的筛选?我对于只看一个寄存器的值而调用DumpRegs感到有些厌倦. 我正在使用x86体系结构,Visual Studio中的MASM和Irvine32.lib. 解决方案 Irvines的DumpReg反复使用Macros.inc宏:mShowRegister.可以直接使用.示例: INCLUDE Irvine32.in ..
发布时间:2020-05-06 09:10:29 其他开发

将用MASM制作的库调用到C或C ++

我一直在尝试调用用masm制作的c库. 我已经从程序集MASM制作了一个.lib文件. 但我不知道如何将其称为C语言库. 这是.lib文件 https://www.dropbox.com/s/d9d8cjbxmo51yqg/main.lib 需要帮助. 谢谢 解决方案 哦,天哪.巨大的陷阱.在Visual Studio中的32位masm .asm文件中,“.model flat,c" ..
发布时间:2020-05-06 09:10:27 C/C++开发

MASM是否组装多个源文件并将它们链接在一起?

我试图查看asm语言是否支持基于链接的功能,例如"C"语言.例如.我有"m.asm": assume cs:code code segment start: mov ax,20h call s mov ah,4ch int 21h code ends end start 其中"s"是源代码中不存在的符号,然后我有了n.asm文件来定义符号(实际上是标签) code ..
发布时间:2020-05-06 09:10:20 其他开发

我怎么知道MASM是使用相对偏移还是绝对偏移对我的JMP指令进行编码?

我怎么知道MASM是使用相对偏移还是绝对偏移对我的JMP指令进行编码? 我知道x86提供了相对和绝对偏移量的JMP操作码. 我想确定我的跳跃是相对的,但是我找不到任何合适的MASM文档来告诉我JMP @label是否实际上转换为相对跳跃. 请尽可能在答案中提供指向文档的链接. 对于相反的问题: 参见如何编码远为绝对的JMP/CALL如果您要尝试使MASM发出直接绝对远距离j ..
发布时间:2020-05-06 09:10:18 其他开发