汇编语言的入门第一步,编写hello world
1、代码如下:section .datamsg db "Hello World!",0ahlen equ $-msgglobal _start_start:mov eax,4 ; 4号调用mov ebx,1 ; ebx送1表示标准输出mov ecx,msg ; 字符串的首地址送入ecxmov edx,$len ; 字符串的长度送入edxint 80h; 输出字串mov eax,1; 1号调用mov ebx,0; 返回0int 80h ; 结束
2、msg是在数据段(.data犬匮渝扮)中定义的字符串标号,db表示define byte。也就是说msg表示一个字节数组,10是换行符( )的ASCII码值len是字符串长度的标号,equ表示等同于,$是一个指示当前位置的变量,表示len字节数组的最后一个字节后面的那个字节的位置,$减去msg(字符串数组的第一个字节的位置),得到的恰好是字节数组的长度,这个长度值由汇编器在编译时计算得到。linux x86_64下编译 nasm -f elf64 hello.asm 连接 ld -o hello hello.o执行 ./hello
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:60
阅读量:28
阅读量:39
阅读量:48
阅读量:90