亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 4744 | 回復: 12
打印 上一主題 下一主題

2.6.27 x86/boot/head.S [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-01-06 10:34 |只看該作者 |倒序瀏覽
有兩個問題:
1,類似于下面的語句是什么意思?我理解是個段,但是不知道后面的 “a” “ax”是什么意思。
.section ".header", "a"
.section ".bstext", "ax"

2,下面這兩行代碼是什么意思,沒理解。
_start:
                # Explicitly enter this as bytes, or the assembler
                # tries to generate a 3-byte jump here, which causes
                # everything else to push off to the wrong offset.
                .byte        0xeb                # short (2-byte) jump
                .byte        start_of_setup-1f

論壇徽章:
0
2 [報告]
發(fā)表于 2009-01-06 11:21 |只看該作者
1,  info as

2,  分配一byte的空間,給它賦值為0xeb,看注釋這是short jump的操作碼
   
第二個byte是一個表達式, a減去b的結果。

論壇徽章:
0
3 [報告]
發(fā)表于 2009-01-06 11:32 |只看該作者
>2,  分配一byte的空間,給它賦值為0xeb,看注釋這是short jump的操作碼
  我明白了,這個其實是一條操作指令  
>第二個byte是一個表達式, a減去b的結果。
這個是指令的操作數,想跳轉到start_of_setup,為什么寫成start_of_setup-1f,這個f是什么,我看到很多匯編的立即數都跟個f?

既然是想跳轉,為什么要寫成這種方式,直接使用類似于jmp指令不行嗎?為什么要這樣來實現呢?
我理解是為了保證后面的數據的offset,如果用類似于jmp,產生不是2字節(jié)的代碼。

[ 本帖最后由 chenbdchenbd 于 2009-1-6 11:35 編輯 ]

論壇徽章:
0
4 [報告]
發(fā)表于 2009-01-06 12:33 |只看該作者
a 減去 b, 得到的是一個值, 也就是操作數。

f表示forward, b表示backward, LABEL加上{f|b},當作一個值來用。

論壇徽章:
0
5 [報告]
發(fā)表于 2009-01-06 15:40 |只看該作者
謝樓上的回答。

論壇徽章:
0
6 [報告]
發(fā)表于 2009-01-07 00:07 |只看該作者
斑竹,從哪能學到這些匯編指令?
介紹本書吧

論壇徽章:
0
7 [報告]
發(fā)表于 2009-01-08 15:23 |只看該作者
找到了下面內容,但是還是有些不理解什么叫可分配段,繼續(xù)找。
.section

       語法:

              .section NAME [, "FLAGS"[, @TYPE[, @ENTSIZE]]]

              FLAGS 常用的有以下幾種:

              `a'           可分配段

              `w'          可寫段

              `x'           可執(zhí)行段

              data section 具有的 FLAGS 通常是’wa’;

              text section 具有的 FLAGS 通常是’ax’。

       用法:

              .section .text1, “wa”      // 定義一個.text1段,且該段為可寫的以及可分配的

論壇徽章:
0
8 [報告]
發(fā)表于 2009-01-08 18:07 |只看該作者
原帖由 chenbdchenbd 于 2009-1-8 15:23 發(fā)表
找到了下面內容,但是還是有些不理解什么叫可分配段,繼續(xù)找。
.section

       語法:

              .section NAME [, "FLAGS"[, @TYPE[, @ENTSIZE]]]

              FLAGS 常用的有以下幾種:

...


其實就是同樣的數據打個標簽,然后在 ld 腳本中可以指定存放位置,有同樣標簽的可以存放在一起,即使代碼分布在不同的位置。

論壇徽章:
0
9 [報告]
發(fā)表于 2009-01-08 18:21 |只看該作者
`a'           可分配段  指的就是可以被ld放在別的地方嗎?

論壇徽章:
0
10 [報告]
發(fā)表于 2009-01-08 18:44 |只看該作者
原帖由 chenbdchenbd 于 2009-1-8 18:21 發(fā)表
`a'           可分配段  指的就是可以被ld放在別的地方嗎?


請參考 《GNU linker ld》
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協(xié)會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP