第三讲 汇编初步 课程随手记

一、寄存器

2109f4ba7f824d10b61da97c0f50ada7.png

 32位CPU通用寄存器如下图所示:

14dc1a6448e54ef8986cecddb3a5b922.png因为教材依照的是32位CPU寄存器,而我安装的是64位寄存器,所以找了一下64位的寄存器的资料

ff07f6b4dd5542ecbde937ca5627e4c0.png

 PS:一般来说,Intel处理器字节存储顺序为小端法存储,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中

二、MOV指令

mov
指令在汇编中表示传送

 

movl
mov long ,传送字长 : 32位,把32位立即数放到寄存器

 

movw
mov word,传送 :16位;,把 16 位立即数放到寄存器的底16位,高16位清0

 

movb
mov byte,传送字节 :8位,把8位立即数放到寄存器

三、汇编调试案例

案例文件:1005.s

 .section .text    
   
 .global _start   
 _start:      
     nop
     movl $4, %eax  
     movl $1, %ebx  
     movl $5, %ecx  
     movl $13, %edx  
     movl %eax,%ebx
    
   
     movl $1, %eax  
     int $0x80  

(1)查看文件内容

cda1bc7793134cf4ae8deb443d8626e5.png

其中,cat -n表示查看文件内容,并在文件中显示行号。当然,换成vim也可以

(2)汇编、链接和执行

43f12ab7911249dba90580eb0cfb5fb7.png

-g表示产生调试信息

更多as命令内容见【Linux】一步一步学Linux——as命令(260)_linux as汇编教程-CSDN博客

(3)反汇编

001484782ad64c97b595a98e15a2b242.png

objdump -d表示反汇编应用程序 

更多objdump命令内容见Linux objdump命令(反汇编、查看符号)_objdump查看符号表-CSDN博客

(4)gdb调试

a0caeaff1e264d88b99d2e5ab746d646.png

67ceedc3454c4138870f09fb6e9e4386.png

gdb 1005 表示启动调试1005

 

b(break) 表示打断点

 

r(run) 表示运行

 

n(next) 表示执行下一行语句

 

i r 表示查看所有寄存器

 

i r $edx 表示查看edx寄存器的值

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一二爱上蜜桃猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值