8086CPU写汇编的规则
assume cs:程序入口標(biāo)號
標(biāo)號1 segment
數(shù)據(jù)塊
……
標(biāo)號1 ends
標(biāo)號2 segment
……
……
標(biāo)號2 ends
程序入口標(biāo)號 segment
代碼塊
……
x:
代碼塊
……
程序入口標(biāo)號 ends
end 標(biāo)號x;程序入口
標(biāo)號:數(shù)據(jù)塊(代碼塊)在內(nèi)存中的段地址
(標(biāo)號·16+0000h):數(shù)據(jù)塊(代碼塊)在內(nèi)存中的起始地址
設(shè)數(shù)據(jù)塊(代碼塊)的大小為x字節(jié)
則數(shù)據(jù)塊(代碼塊)的終止地址為((標(biāo)號+x / 16+x % 16 && 1)·16-0001h):/ 為整數(shù)除法,% 為取余符號
給數(shù)據(jù)塊(代碼塊)分配內(nèi)存時,都是以16字節(jié)的整數(shù)倍進(jìn)行分配的,所以終止地址如上所示
在程序編譯過程中,編譯過程是從上往下編譯,程序塊可能會用到數(shù)據(jù)塊或其他程序塊,所以會用到的數(shù)據(jù)應(yīng)該先于入口程序編譯。
每一個數(shù)據(jù)塊(代碼塊)都需要一個segment作為開始 和 ends作為結(jié)束
數(shù)據(jù)塊與代碼塊在CPU看來都是等同(在內(nèi)存中)的,所以需要一個標(biāo)號來讓CPU區(qū)別兩者,程序末尾的“end 標(biāo)號x”就是這樣的標(biāo)號。當(dāng)執(zhí)行到這一步時,cs:ip(指令指針)會指向標(biāo)號x所在的位置,開始執(zhí)行
總結(jié)
以上是生活随笔為你收集整理的8086CPU写汇编的规则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8086CPU跳转指令
- 下一篇: 8086标志寄存器介绍及作用(未完)