Linux中使用dd命令修改as86汇编编译链接后的程序
来源:互联网 发布:哈密顿算法求最短路径 编辑:程序博客网 时间:2024/06/15 18:42
之前抄写了一段代码:
;
; boot.s --bootsect.S framework
;
.globlbegtext,begdata,begbss,endtext,enddata,endbss ;global flag
.text
begtext:
.data
begdata:
.bss
begbss:
.text
BOOTSEG = 0x07c0
entry start
start:
jmpi go,BOOTSEG
go: mov ax,cs
mov ds,ax
mov es,ax
mov [msg1+17],ah ; need to understand
mov cx,#20
mov dx,#0x1004
mov bx,#0x000c
mov bp,#msg1
mov ax,#1301
int 0x10
loop0: jmp loop0
msg1: .ascii "Loading system ..."
.byte 31,10;need to understand
.org 510
.word 0xAA55
.text
endtext:
.data
enddata:
.bss
endbss:
由于.org的定制,这个程序设计的时候生成的程序大小应该是512B。实际编译之后的结果查看信息如下:
grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/15_linux/01_kernal/03_my_test_code$ls -l
total 1
-rwxrwxrwx 1 rootroot 544 Aug 20 18:55 boot
-rwxrwxrwx 1 rootroot 232 Aug 20 18:41 boot.o
-rwxrwxrwx 1 rootroot 554 Aug 20 16:05 boot.s
从上面的结果,程序的实际大小是544B。原因是程序编译器是用于MINIX的,而多出的一部分信息是因为程序的头部多了MINIX系统执行头结构。修改的方式可以是用二级制编译的方式修改,当然还能够用Linux的dd修改。
修改过程以及结果如下:
grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/15_linux/01_kernal/03_my_test_code$dd bs=32 if=boot of=./new_boot skip=1
16+0 records in
16+0 records out
512 bytes (512 B)copied, 0.004947 s, 103 kB/s
grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/15_linux/01_kernal/03_my_test_code$ls -l
total 2
-rwxrwxrwx 1 rootroot 544 Aug 20 18:55 boot
-rwxrwxrwx 1 rootroot 232 Aug 20 18:41 boot.o
-rwxrwxrwx 1 rootroot 554 Aug 20 16:05 boot.s
-rwxrwxrwx 1 rootroot 512 Aug 20 19:12 new_boot
从上面的结果来看,修改已经完成,文件的大小已经回到了512B。
- Linux中使用dd命令修改as86汇编编译链接后的程序
- as86汇编程序的编译与链接
- Linux中dd命令的使用
- linux dd命令的使用
- linux的dd命令使用
- 汇编中 db dd dw的使用
- linux 中 的 dd 命令 牛逼的 dd 命令
- 程序的预处理、编译、汇编和链接
- 预处理,编译,汇编,链接程序的区别
- 程序编译-汇编-链接的理解!
- Linux中dd命令使用总结
- linux dd 命令使用
- linux dd命令使用
- 【Linux】使用vim编写一个程序,gcc查看预处理、编译、汇编、链接过程
- Linux下dd命令的使用
- Linux 下的dd命令使用详解
- Linux 下的dd命令使用详解
- Linux 下的dd命令使用详解
- Hdu 6156 Palindrome Function【数位Dp】
- 省份城市二级联动【DOM+js+XML】
- Testng在Maven中配置Reportng中文乱码解决及笔记记录
- Visual Studio 2017史上最强大的IDE
- 使用select实现多线程定时器
- Linux中使用dd命令修改as86汇编编译链接后的程序
- 循环
- Asteroids
- 全选/全不选/反选【DOM】
- Swoole笔记(四)
- mysql 忘记root密码,重新修改密码
- 343. Integer Break
- vue-resource
- ACM进阶之路(欢迎来看)