在程序集中从 linux 终端获取 args[1]
Getting args[1] from linux terminal in Assembly
我正在编写一个程序,该程序可以获得一个包含 2 个字符(例如“-c”)和一个文件名或仅包含文件名的标志。我正在尝试解析标志并检查它是否正确,但我在 mov ebx, BYTE [ebx]
.
行收到 mismatch in operand sizes
错误
代码:
_start:
push ebp
mov ebp, esp
mov ebx, 0
add ebx, [ebp+8]
mov ebx, BYTE [ebx]
cmp ebx, '-c' ; -c given
je print_char_num
jmp print_file_content ; -c not given
如何正确解析终端的第一个参数?
谢谢!
好的,我能够修复它,这是 tp get argv[1]:
当前的方式
_start:
push ebp
mov ebp, esp
mov ebx, 0
mov ebx, [ebp+12] ; argv[1] - the -c flag if given
movzx ebx, word [ebx]
cmp ebx, '-c' ; - is given
je print_char_num
jmp print_file_content ; -c not given
我将 word 移动到 ebx,因为我想从 argv[1]('-c' 标志)中获取前 2 个字符
我正在编写一个程序,该程序可以获得一个包含 2 个字符(例如“-c”)和一个文件名或仅包含文件名的标志。我正在尝试解析标志并检查它是否正确,但我在 mov ebx, BYTE [ebx]
.
mismatch in operand sizes
错误
代码:
_start:
push ebp
mov ebp, esp
mov ebx, 0
add ebx, [ebp+8]
mov ebx, BYTE [ebx]
cmp ebx, '-c' ; -c given
je print_char_num
jmp print_file_content ; -c not given
如何正确解析终端的第一个参数? 谢谢!
好的,我能够修复它,这是 tp get argv[1]:
当前的方式_start:
push ebp
mov ebp, esp
mov ebx, 0
mov ebx, [ebp+12] ; argv[1] - the -c flag if given
movzx ebx, word [ebx]
cmp ebx, '-c' ; - is given
je print_char_num
jmp print_file_content ; -c not given
我将 word 移动到 ebx,因为我想从 argv[1]('-c' 标志)中获取前 2 个字符