組合語言 資料表示

2021-10-22 06:21:04 字數 1952 閱讀 1426

1.常量表達

組合語言常用字尾字母區別各個進製的資料

二進位制數用字尾字母b(binary)

十六進製制數用字尾字母h(hexadecimal),以

十進位制數是預設,不需特別說明,或用d(decimal)

n位表達的數值範圍:0~2(n-1)

2.有符號整數在計算機中預設採用補碼

最高位表示符號:正數用0,負數用1

正數補碼:直接表示數值大小(同無符號數)

負數補碼:將對應正數補碼取反加1

負數真值「取反加1」得機器數補碼

負數補碼「取反加1」得到負數真值

適用於使用二進位制表達時

從最低位開始,對遇到的0和第乙個1保持不變

從第乙個1以後開始直到最高位均按位求反

補碼最高位為1,表示負號(負數)

適用於使用十六進製制表達時

用帶借位的0做減法

3.常量

常量是程式中使用的乙個確定數值

在彙編階段就可以確定,直接編碼於指令**中

不是儲存在儲存器中可變的常量

組合語言支援多種常量的表達形式

常數:直接給出數值本身

字元和字串:使用ascii碼值

符號常量:用識別符號替代數值

數值表示式:經過運算得到數值

數值0dh(回車符)

數值0ah(換行符)

4.變數定義

隨程式執行可以發生變化

標量需要事先定義才能使用

變數表達主存資料,即儲存器運算元

變數名+變數定義偽指令+初值表

變數名:使用者識別符號,表示首元素邏輯位址

偽指令助記符:byte位元組(1位元組)、word字(2位元組)、dword雙字(4位元組)等表示變數型別

初值表:表示變數初值,可以有多個引數

byte word dword都是定義變數的偽指令。

byte是8位,1位元組

word是16位,2位元組

dword是32位,4位元組

5.位元組編址的主儲存器

最小的儲存單位:二進位制位(bit)

最常用的儲存單位:位元組(byte)

8個二進位制位是乙個位元組

乙個儲存單元儲存乙個位元組量資料

乙個儲存單元對應乙個儲存器位址

變數儲存於位元組編址的主儲存器中

每個儲存單元儲存乙個8位、位元組量資料

多個位元組資料順序逐個存放在主存相鄰單元

儲存順序:大端方式、小端方式(8086)

6.定位偽指令

org偽指令控制存放的偏移位址

org引數 ;從「引數」指定的位置存放

align偽指令控制資料對齊位址邊界

align n ;按對齊n位元組位址邊界的位置存放

位址對齊存放能獲得更高的效能

7.變數的位址屬性8.變數的型別屬性

組合語言的資料表示

組合語言程式設計師處理的是物理級資料,因此他們必須善於檢查記憶體和暫存器。通常,二進位制數被用於描述計算機記憶體的內容 有時也使用十進位制和十六進製制數。所以必須熟練掌握數字格式,以便快速地進行數字的格式轉換。每一種數制格式或系統,都有乙個基數 base 也就是可以分配給單一數字的最大符號數。下表給...

組合語言 AT T組合語言

這兩天的pwn題環境都是在linux中,採用的組合語言是 at t 格式。之前學習的是intel格式的8086彙編,今天學習了下at t組合語言。基於x86 架構的處理器所使用的彙編指令一般有兩種格式 操作intel格式at t格式 暫存器命名 push eax pushl eax 常數 立即運算元...

彙編學習筆記02 資料表示

一.基礎知識 計算機系統內部採用二進位制表示數值資料,非數值資料和指令。二.數值資料的表示 把乙個數連同其符號在內在機器中的表示加以數值化,這樣的數稱為機器數。一般用最高有效位來表示數的符號 正數用0表示,負數用1表示。1.有符號數的數值範圍 8位有符號數表示的數值範圍 128 127 16位有符號...