爲了避開 0 出現重碼, 所以採用 補碼 這種編碼方法.
先確定 00000000b - 01111111b 表示 0 - 127 , 然後再用 按位取反 表示負數.
表達範圍是 -128至 +127, 一共是 128 + 1 + 127 = 256個
最高位爲 1 的表示負數 如: 10000000 、 10010000 都是負數.
-20 的補碼是多少呢?
-20 的絕對值是20, 20即 00010100b, 將 00010100b 取反即 11101011, 11101011 加1等於 11101100
1. 打開計算器, 選擇科學型, 選擇10進制, 輸入20.
2. 切換到2進制, 選擇左上的"字節", 20變成10100.
3. 點 Not 鍵取反, 變成 11101011.
4. 加 1, 變成 11101100
附註: 對計數器上按紐功能有不明白可以查看計算器上的 幫助, 或者右鍵點計算器上的按紐查看該鍵功能,
可以通過右鍵單擊任意的“計算器”按鈕,然後單擊“這是什麼?”來查看.
10000000b 表示多少呢? 因爲高位是1, 證明是負數,
1. 切換到2進制, 選擇 "字節".
2. 輸入 10000000 後點 Not 鍵取反得到 1111111.
3. 加 1 等於 10000000.
4. 切換到 10進制, 可以看到是 128.
所以就是 -128.
//p317
; jmp
assume cs:codesg
codesg segment
start: mov ax, 0
jmp short s
add ax, 1
s: inc ax
codesg ends
end start
//---------------------------
指令 "jmp short 標號" 功能爲: (IP) = (IP) + 8位位移
指令 "jmp near 標號" 功能爲: (IP) = (IP) + 16位位移
//p178