操作數

操作數

操作數是運算符作用於的實體,是表達式中的一個組成部分,它規定了指令中進行數字運算的量。

表達式是操作數與操作符的組合。

定義


操作數指出指令執行的操作所需要數據的來源。操作數是彙編語言指令的一個欄位。例如:Mov AX 5678H 操作數(AX 5678H)。在操作數這個欄位中可以放操作數本身,也可以放操作地址,還可以放操作地址的計算方法。
通常一條指令均包含操作符和操作數。例如:在比較指令中操作符指定計算機做比較操作,操作數則指定進行比較的兩個數值。
操作數是指令執行的參與者,也就是各種操作的對象。與之有關的是操作碼,所謂操作碼是說明計算機要執行哪種,如傳送,運算,移位,跳轉等操作,它是指令中不可缺少的組成部分。

應用


在應用指令中,內容不隨指令執行而變化的操作數為源操作數,內容隨執行指令而改變的操作數為目標操作數。大多數情況下,操作數欄位可有一個或者多個操作數。只有一個操作數的指令稱為單操作數指令,有兩個操作數的指令稱為雙操作數指令。雙操作數又稱為源操作數(source)和目的操作數(destination)
操作符目的操作數,源操作數
如:MOV AH,06H
操作數在C語言中包括常量、標識符、字元串、函數調用、下標表達式、成員選擇符和複雜表達式,在彙編語言中也是重要的一部分,通過將操作數與操作符相結合的方式或者通過將操作符放在括弧內的方式形成。

操作數的形式


立即操作數:指令要操作的數據以常量的形式出現在指令中,稱為立即數,它只能作為源操作數。
寄存器操作數:指令要操作的數據存放在CPU中的寄存器里,指令中給出寄存器名即可。
內存操作數:指令要操作的數據存放在內存某些單元中,指令中給出內存單元物理地址(實際上指令只給出了偏移地址,段地址採用隱含方式給出,也可以使用跨段方式指出當前段地址)。