SECTION .data
msg db 'hello, brave new world!', 0Ah
SECTION .text
global _start
_start:
mov eax,msg
// move the address of our message string into EAX
call strlen
// call our function to calculate the length of the string
mov edx,eax
算的结果存在EAX里
mov ecx,msg
mov ebx,1
mov eax,4
int 80h
mov ebx,0
mov eax,1
int 80h
strlen: ; 这是第一个函数声明
push ebx ; 将EBX上的值压入栈中,当在这个函数中使用EBX的时候保护它
mov ebx, eax
nextchar :
cmp byte[eax],0
jz finished
inc eax
jmp nextchar
finished:
sub eax,ebx
pop ebx ;出栈 EBX
ret ;返回函数被调用的地方
NASM 汇编学习 9
于 2022-02-01 22:45:06 首次发布