String 汇编代码不为';t打印字符串
所以基本上我在试着用汇编语言编写一个hello world程序。程序按其应该的方式退出,但在此过程中不会打印任何字符串。任何地方都没有错误。我怀疑我以某种方式声明或使用了错误的字符串String 汇编代码不为';t打印字符串,string,assembly,x86,String,Assembly,X86,所以基本上我在试着用汇编语言编写一个hello world程序。程序按其应该的方式退出,但在此过程中不会打印任何字符串。任何地方都没有错误。我怀疑我以某种方式声明或使用了错误的字符串 .intel_syntax noprefix .data msg: .ascii "Hello World" .text .globl _start _start: mov eax, 4 #call write mov ebx, 1 #output into stdout
.intel_syntax noprefix
.data
msg:
.ascii "Hello World"
.text
.globl _start
_start:
mov eax, 4 #call write
mov ebx, 1 #output into stdout
mov ecx, msg #what to write
mov edx, 11 #length of what to write
int 0x80
mov eax, 1 #exit
mov ebx, 0
int 0x80
我也尝试过更换
mov ecx, msg
与
但这似乎没有什么区别。您需要使用
mov-ecx,offset-msg
或lea-ecx,msg
。
另外,如果您在64位系统上,请确保您是以32位代码进行组装。您需要使用
mov-ecx,offset-msg
或lea-ecx,msg
。
另外,如果您在64位系统上,请确保您是以32位代码进行组装。您需要使用
mov-ecx,offset-msg
或lea-ecx,msg
。
另外,如果您在64位系统上,请确保您是以32位代码进行组装。您需要使用
mov-ecx,offset-msg
或lea-ecx,msg
。
另外,如果您使用的是64位系统,请确保以32位代码进行汇编。您使用的是什么汇编程序?老实说,我不确定汇编程序实际上是什么,但为了创建二进制文件,我使用命令“as-o HelloWorld.o HelloWorld.s”和“ld-o HelloWorld HelloWorld.o”你在用什么汇编器?老实说,我不确定汇编器实际上是什么,但要创建二进制文件,我使用命令“as-o HelloWorld.o HelloWorld.s”和“ld-o HelloWorld HelloWorld.o”你在用什么汇编器?老实说,我不确定汇编器实际上是什么,但要创建二进制文件,我使用命令“as-o HelloWorld.o HelloWorld.s”和“ld-o HelloWorld HelloWorld.o”您在使用什么汇编器?老实说,我不确定汇编器实际上是什么,但为了创建二进制文件,我使用命令“as-o HelloWorld.o HelloWorld.s”和“ld-o HelloWorld HelloWorld.o”
mov ecx, [msg]