組合語言學習筆記1 有符號進製轉換

2021-09-28 22:19:24 字數 1086 閱讀 8080

補碼表示

負整數用補碼表示時,使用的數學原理是:乙個整數的補碼是其加法逆元

二進位制補碼

將乙個二進位制整數按位取反再加1

例如二進位制數00001011

初始值00001011

按位取反

11110100

+1得到補碼

11110101

補碼操作是互逆的,所以11110101的補碼也是00001011

十六進製制補碼

同二進位製取補碼,按位取反再加1

十六進製製取反的方法就是用15減去該數字

例如6a3d --> 95c2 + 1 --> 95c3

95c3 --> 6a3c + 1 --> 6a3d

如果最高位是1,則該數為補碼,再次對其求補,得其正數值,求十進位制數

如果最高位是0,直接轉換成十進位制數

例如11110000 --> 求補00010000 -->求十進位制 16

因為為負數 所以其十進位制數為-16

00001111 -->求十進位制15

所以其十進位制數為15

將十進位制數的絕對值轉化為二進位制,若該數為負數則求其補碼

例如43 --> 00101011

-43 --> 00101011 --> 求補 11010101

將十進位制數的絕對值轉化為十六進製制,若該數為負數則求其補碼

例如43 --> 2b

-43 --> 2b --> 求補 d5

通過檢查十六進製制最高位,

若最高位 >= 8 則該數為負數

最高位 <= 7則為正數

若十六進製制整數為負數,則求其補碼,將其轉化成十進位制,並在十進位制前面加上負號

若十六進製制整數為整數,則直接轉化成十進位制

例如8a --> 求補 76 --> 轉化成十進位制 118 --> -118

7a --> 轉化成十進位制 122

將減數取補,再與被減數相加,並忽略最高位的進製

例如01101 - 00111

將00111取補為 11001

01101 + 11001= 00110

組合語言學習筆記1

在乙個程式中使用多個段 assume cs code,ds data,ss stack data segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h data ends stack segment dw 0,0,0,0,0,0,0,0...

組合語言學習筆記 1

1.1 控制暫存器 具有控制程式順序 狀態 和堆疊儲存器的暫存器,包含程式計數器pc 儲存下一次要執行的程式位址資訊的20位暫存器,在執行的時候,根據預取的指令碼位元組數自動遞增 在執行轉移指令時,設定立即數或者暫存器的內容 在產生復位訊號的時候,給低16位設定位址0000h 0001h的復位向量表...

組合語言學習1

資料查詢 內容 tab開始的位元組單元中存放n個無符號數,dat單元存放乙個已知資料x,現從tab中查詢是否存在資料x,如果存在,no單元存放該資料在tab中的序號,否則no單元存放0ffh tab db x1,xn dat db x no db n 5.data tabdb n dup datdb...