Apr.7.2024小結——匯編中jmp和call的用法
今天終于跑起來了自己OS的mbr,還是很激動人心的。學習了16位實模式下jmp和call的各種用法,來總結一下:
call (near) 0xabcd 相對近調用 后面的地址是相對的 -32768~32767
call [addr] 間接絕對近調用 地址為絕對,但是是在某個寄存器或內存中
call (far) 段基址:偏移 直接絕對遠調用 跨段
call far [addr] 間接絕對遠調用 跨段 地址在內存中 前2個字節(jié)是段基址 后2個字節(jié)是偏移(addr dw start,0)
jmp (short) addr 相對短轉移 -128-127
jmp (near) addr 相對近轉移 -32768-32767
jmp (near) ax 間接絕對近轉移 地址在寄存器或內存中
jmp (far) 段基址:偏移 直接絕對遠轉移 跨段
jmp far [addr] 間接絕對遠轉移 地址在內存中
感覺call和jmp其實沒什么區(qū)別,就是有沒有ret的關系 自己對于大端字節(jié)序 小端字節(jié)序的理解還不夠到位,要好好看看
這些內容是從《操作系統(tǒng)真象還原》這本書上總結下來的,今天是我第一天寫總結,希望能夠堅持下去!

浙公網(wǎng)安備 33010602011771號