Apr.7.2024小結——彙編中jmp和call的用法

jiehuan發表於2024-04-07

今天終於跑起來了自己OS的mbr,還是很激動人心的。學習了16位真實模式下jmp和call的各種用法,來總結一下:

call (near) 0xabcd 相對近呼叫 後面的地址是相對的 -32768~32767

call [addr] 間接絕對近呼叫 地址為絕對,但是是在某個暫存器或記憶體中

call (far) 段基址:偏移 直接絕對遠呼叫 跨段

call far [addr] 間接絕對遠呼叫 跨段 地址在記憶體中 前2個位元組是段基址 後2個位元組是偏移(addr dw start,0)

jmp (short) addr 相對短轉移 -128-127

jmp (near) addr 相對近轉移 -32768-32767

jmp (near) ax 間接絕對近轉移 地址在暫存器或記憶體中

jmp (far) 段基址:偏移 直接絕對遠轉移 跨段

jmp far [addr] 間接絕對遠轉移 地址在記憶體中

感覺call和jmp其實沒什麼區別,就是有沒有ret的關係 自己對於大端位元組序 小端位元組序的理解還不夠到位,要好好看看

這些內容是從《作業系統真象還原》這本書上總結下來的,今天是我第一天寫總結,希望能夠堅持下去!

相關文章