日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CentOS下首次使用as86汇编器

發布時間:2025/4/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS下首次使用as86汇编器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

新建一個匯編文件,boot.s;

! ! boot.s -- bootsect.s的框架程序.用代碼0x07替換字符串msg1中的1字符,然后在屏幕第一行上顯示. ! .globl begtext,begdata,begbss,endtext,enddata,endbss !全局標示符,供ld86鏈接使用. .text !正文段 begtext: .data !數據段 begdata: .bss !未初始化數據段 begbss: .text !正文段 BOOTSEG = 0x07c0 !BIOS加載bootseg代碼的原始段地址entry start !告知鏈接程序,程序從start標號處開始執行 start:jmpi go,BOOTSEG !段間跳轉.BOOTSEG指出條轉段地址,標號go是偏移地址 go: mov ax,cs !段寄存器cs值-->ax,用于初始化數據段寄存器ds和esmov ds,axmov es,axmov [msg1+17],ah !0x07-->替換字符串中1個點符號,喇叭將會鳴一聲mov cx,#20 !共顯示20個字符,包括回車換行符mov dx,#0x1004 !字符串將顯示在屏幕第17行,第5列處mov bx,#0x000c !字符顯示屬性(紅色)mov bp,#msg1 !指向要顯示的字符串(中斷調用)mov ax,#0x1301 !寫字符串并移動光標到結尾處int 0x10 !BIOS中斷調用0x10,功能0x13,子功能01 loop0: jmp loop0 !死循環 msg1: .ascii "Loading system ..." !BIOS中斷要顯示的字符串,共18個字符.byte 13,10 !字符串結尾的回車換行,合計20個字符 .org 510 !表示以后語句從地址510(0x1FE)開始存放.word 0xAA55 !有效引導扇區標志,供BIOS加載引導扇區使用 .text endtext: .data enddata: .bss endbss:

? ? 代碼來自網上;

輸入 as86...,如下圖,提示出錯,但是生成了.o文件;?

-0還是-O,分不清,改為-O,再試一下,也是一樣,

?

ld86,鏈接一下,不能鏈接了;

?

查了一下,最后生成boot文件的命令是,

as86 -0 -a -o boot.o boot.s
ld86 -0 -s -o boot boot.o
dd bs=32 if=boot of=a.img skip=1

? ? -0,非-O;

再試,鏈接出現下圖錯誤;premature end of input file,

?

?

在代碼最后一行再打一個回車;

?

rm刪除之前的無效文件,再編譯鏈接,好了,最終構建好的boot文件出來了;

?

?

總結

以上是生活随笔為你收集整理的CentOS下首次使用as86汇编器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。