我正在编写一个简单的程序,我应该获取第一个命令行参数并将其打印到标准输出。 我的代码如下所示:
./program hello
所以当我从Linux终端调用我的程序时,如:helloLC_PAPER=bs_BA.UTF-8XDG_VTNR=7LC_ADDRESS=bs_BA.UTF-8SSH_AGENT_PID=1483XDG_SESSION_ID=c2LC
,我希望它打印出“hello”。但输出如下:halfRadius
。
我知道这些是环境变量,但我无法弄清楚它们打印出来的原因。
感谢任何帮助。
答案 0 :(得分:2)
实际上,如果仔细检查,你会发现从内存中“hello”的地址开始会打印出100个字符。
替换
mov rdx, 100
带
mov rdx, 5 ; len of "hello", instead of 100