我有一个完全用C编写的项目。可以使用GCC for Linux或MSVC for Windows编译相同的C文件。出于性能原因,我需要将一些代码重新编写为x86汇编语言。 是否有可能将此汇编语言编写为将使用GCC和MSVC工具链构建的源文件?或者,如果我为一个工具链编写汇编源文件,是否有工具将其转换为与其他工具一起工作? 或者,我坚持要么维护汇编源代码的两个副本,要么使用第三方汇编器,例如NASM
我想编写一个程序,它返回你写的字符串。但它总是打印它没有第一个字符。此外,它不会返回任何超过第一空间的东西。 例子: IN: test
OUT: est
代码: extern printf, scanf, exit
global main
section .text
main:
push rbp
;input of string
mov rd
我在程序集中有一些代码有点奇怪。我有一个C extern函数,它调用asm .asm文件中的另一个函数。这个C函数从.asm文件中放入我的函数使用的堆栈三个地址。一切都很顺利,直到此出现: ; Let's say we take from the stack first parameter from my C function.
; This parameter is a string of b
我知道这个问题以前曾被问过,但其他答案似乎都没有解决我的问题。也许我错过了什么? 我知道.iso的作品,因为我在QEMU中运行它,并成功运行。那么我做错了什么? bits 16
xor ax, ax
start:
cld ; Set direction flag to forward
; Set up registers
mov ax, 07c0h