cx稱作什么寄存器


cx稱作什么寄存器

文章插圖
cx稱作計數寄存器 。匯編語言中的AX、BX、CX、DX作為CPU內部的通用寄存器中的數據寄存器助記符,用來存放參與運算的數據或是存儲運算的結果 。
AX:寄存器稱為累加器,常用于存放算術、邏輯運算中的操作數或結果 。另外,所有的I/O指令都要使用累加器與外設接口傳遞數據 。
BX:寄存器稱為基址寄存器,常用來存放訪問內存時的地址 。
CX:寄存器稱為計數寄存器,在循環、串操作指令中用作計數器 。
【cx稱作什么寄存器】DX:寄存器稱為數據寄存器,在寄存器間接尋址中的I/O指令中存放I/O端口的地址 。
AX、BX、CX、DX每個寄存器可以將高、低8位分別作為獨立的8位寄存器使用 。其中的高8位用AH、BH、CH、DH表示,低8位用AL、BL、CL、DL表示 。
AX = AH + AL
BX = BH + BL
CX = CH + CL
DX = DX + DL
計數寄存器
可以看到程序計數器是基于每一個線程的,每一個線程都有一個程序計數器 。
JVM中的程序計數寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存儲指令相關的現場信息 。CPU只有把數據裝載到寄存器才能夠運行 。這里,并非是廣義上所指的物理寄存器,或許將其翻譯為PC計數器(或指令計數器)會更加貼切(也稱為程序鉤子),并且也不容易引起一些不必要的誤會 。JVM中的PC寄存器是對物理PC寄存器的一種抽象模擬 。
PC寄存器用來存儲指向下一條指令的地址,也即將要執行的指令代碼 。由執行引擎讀取下一條指令 。
棧幀對應這一個方法,各個棧幀之間會有互相調用,棧幀里的指令有行號的表識,pc寄存器就相當于這個行號的表識,執行引擎會拿到標識(地址)去執行下一條指令,完成之后會再去pc寄存器拿地址繼續執行,總而言之,pc寄存器只是存儲指令的地址 。

    推薦閱讀