随笔分类 - AS
GNU Linux AS
ARM
摘要:都是串操作,执行完后根据DF标志自动改变间址寄存器的值,使其指向内存中的下一数据,以便重复操作。指令后面加B表示字节操作,加W表示字操作,加D表示双字操作,例如MOVSB、MOVSW、MOVSD,也可以用类型加PTR修饰,例如MOVS DWORD PTR es:[di], DWORD PTR ds:[si]。MOVS是把ds:si指向的内存数据传送到es:di指向的内存里面;LODS是把ds:si指向的内存数据传送到al/ax/eax里面;CMPS是把ds:si指向的内存数据与es:di指向的内存数据进行比较,只影响标志位,不改变数据;SCAS是把al/ax/eax与es:di指向的内存数据进
阅读全文
摘要:.align 就是用来对齐的,究竟怎么对齐,有啥情况?下面分析一下(一)$vim align1.s在新建的文件编辑以下代码:_start: b reset .byte 0x55 .byte 0xaareset: ldr r0, =0x53000000保存后,执行如下命令:$arm-linux-as align1.s -o align1.o这样的话有的编译器可能会报错,但我的编译器没有报错,虽然没有报错,但反汇编的结果显示,运行时肯定会出问题。执行如下命令:$arm-linux-objdump -d align1.o显示如下:00000000 : 0: ea000000b4 4: 045...
阅读全文

浙公网安备 33010602011771号