Chinaunix
标题:
汇编的问题.
[打印本页]
作者:
caicheng
时间:
2005-06-24 08:13
标题:
汇编的问题.
# args.s
.text
.globl _start
_start:
popl %ecx # argc
vnext:
popl %ecx # argv
test %ecx, %ecx # 空指针表明结束
jz exit
movl %ecx, %ebx
xorl %edx, %edx
strlen:
movb (%ebx), %al ??? 从这儿一直到注释有点搞不懂帮忙解释一下
inc %edx
inc %ebx
test %al, %al
jnz strlen
movb $10, -1(%ebx)
movl $4, %eax # 系统调用号(sys_write)
movl $1, %ebx # 文件描述符(stdout)
int $0x80
jmp vnext
exit:
movl $1,%eax # 系统调用号(sys_exit)
xorl %ebx, %ebx # 退出代码
int $0x80
ret
复制代码
问题在程序中有???处.
作者:
yuxh
时间:
2005-06-24 08:29
标题:
汇编的问题.
#用C描述:其中char *ptr(表示%ebx指向的字符串),int n(表示串长)
strlen:
movb (%ebx), %al #al = *ptr;
inc %edx #n++;
inc %ebx #ptr++;
test %al, %al #if(al == 0)
jnz strlen #goto streln;
movb $10, -1(%ebx) #*(ptr-1) = '\n' 表示给串未尾加个'\n'
复制代码
作者:
shucx
时间:
2005-06-24 08:59
标题:
汇编的问题.
JNZ #Jump if not zero,ZF=0
作者:
yuxh
时间:
2005-06-24 09:01
标题:
汇编的问题.
哦。不好意思,我打错了。if(al != 0)..
作者:
caicheng
时间:
2005-06-24 10:24
标题:
汇编的问题.
每一句的细节是明白了,谢谢yuxh.
那这段代码实现的功能,能给我细谈谈吗?
作者:
caicheng
时间:
2005-06-24 15:05
标题:
汇编的问题.
好象有点明白了,是不是读取所有栈中的命令行参数并显示呀?
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2