補碼表示
負整數用補碼表示時,使用的數學原理是:乙個整數的補碼是其加法逆元
二進位制補碼
將乙個二進位制整數按位取反再加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...