nasm安装
官网:https://www.nasm.us/
su -c 'curl https://www.nasm.us/nasm.repo | tee /etc/yum.repos.d/nasm.repo'
yum install nasm
注:
su -c command : 切换到root用户并执行command。
tee: 用于重定向到文件
ubuntu安装汇编环境:
$ sudo apt-get install gcc nasm vim gcc-multilib -y
在gdb中修改汇编寄存器 变量:
(gdb) disassemble
Dump of assembler code for function main:
0x080483db <+0>: push ebp
0x080483dc <+1>: mov ebp,esp
0x080483de <+3>: push ebx
=> 0x080483df <+4>: mov ebx,0x50
0x080483e4 <+9>: cmp ebx,0x54
0x080483e7 <+12>: jle 0x80483f0 <main+21>
0x080483e9 <+14>: mov ebx,0x1
0x080483ee <+19>: jmp 0x804840d <main+50>
0x080483f0 <+21>: cmp ebx,0x45
0x080483f3 <+24>: jle 0x80483fc <main+33>
0x080483f5 <+26>: mov ebx,0x2
0x080483fa <+31>: jmp 0x804840d <main+50>
0x080483fc <+33>: cmp ebx,0x3b
0x080483ff <+36>: jle 0x8048408 <main+45>
0x08048401 <+38>: mov ebx,0x3
0x08048406 <+43>: jmp 0x804840d <main+50>
0x08048408 <+45>: mov ebx,0x4
0x0804840d <+50>: mov eax,ebx
0x0804840f <+52>: pop ebx
0x08048410 <+53>: pop ebp
0x08048411 <+54>: ret
End of assembler dump.
(gdb) info registers eax
eax 0xf7fb8dbc -134509124
(gdb) info registers ebx
ebx 0x0 0
(gdb) stepi
0x080483e4 in main ()
=> 0x080483e4 <main+9>: 83 fb 54 cmp ebx,0x54
(gdb) info registers ebx
ebx 0x50 80 修改前
(gdb) set variable $ebx=0x54
(gdb) info registers ebx
ebx 0x54 84 修改后
汇编入门知识:推荐,写的很赞
https://www.zhihu.com/column/c_144694924