Bilangan Angka :
kode Penanda
|
Tidak ada cara untuk menyatakan bahwa byte hexadesimal 0FFh adalah positif
atau negatif, karena nilai yang sama yaitu: "255" dan "-1".
8 bit juga dapat digunakan untuk menghasilkan 256 kombinasi (termasuk nol),
jadi kita dapat menyimpulkan bahwa 128 kombinasi pertama (0..127) adalah
nilai positif dan 128 kombinasi (128..256) adalah nilai negatif.
Untuk mendapatkan "- 5", kita harus mengurangi 5 dari nilai kombinasi
(256), sehingga kita mendapat: 256 - 5 = 251.
Dengan cara diatas menampilkan bahwa nilai negatif punya arti tersendiri ketika kita
menambahkan "- 5" dan "5" hasilnya nol. Ini terjadi ketika processor
menambahkan dua byte 5 dan 251, hasilnya 255, dikarenakan kelebihan
akhirnya mendapatkan nol!
Ketika kombinasi dari 128..256 digunakan oleh bit yang tinggi sehingga selalu
1, jadi ini mungkin digunakan untuk menjadi kode penanda.
Cara yang sama
juga digunakan untuk words (16 bit), 16 bit menghasilkan 65536 kombinasi,
pertama adalah 32768 kombinasi (0..32767) menyatakan nilai positif, dan 32768
kombinasi berikutnya (32767..65535) menyatakan nilai negatif.
Ada sebuah cara di Emu8086 untuk konversi nilai dan mengkalkulasi semua jenis
nilai hanya dengan mengklik Math menu:
Number Convertor
memungkinkan kita mengkonversi nilai dari sebuah sistem ke sistem yang lain. Dengan hanya mengetikkan nilainya
yang akan secara otomatis dikonversikan ke sistem yang lain. Kita dapat bekerja dengan nilai 8 bit dan
16 bit.
Expression Evaluator dapat digunakan untuk menghitung nilai yang berbeda diantara
sistem yang berbeda dan mengkonversikan dari satu sistem ke sistem yang lain. Kita dapat menggunakan nilai
diatas 32 bit. When Signed is
checked evaluator assumes that all values (except decimal and double
words) should be treated as signed. Double words are always treated
as signed values, so 0FFFFFFFFh is converted to -1.
Contoh :
0FFFFh * 10h + 0FFFFh
(lokasi memori maksimal yang yang dapat dicapai oleh cpu 8086 CPU).
Jika kamu memilih Signed dan Word maka menghasilkan
-17 (ini hasil dari (-1) * 16 + (-1) .
To make calculation
with unsigned values uncheck Signed so that the evaluation will be
65535 * 16 + 65535 and you should
get 1114095.
Kamu dapat menggunakan Number Convertoruntuk mengubah non-desimal digit ke nilai signed decimal , and do the calculation with decimal values (if it's easier for
you).
Operasi ini mendukung :
~ not (inverts all bits).
* mengalikan.
/ membagi.
% modulus.
+ menambah.
- subtract (and unary -).
<< shift left.
>> shift right.
& bitwise AND.
^ bitwise XOR.
| bitwise OR.
Angka Binary harus mendapat akhiran "b", contohnya: 00011011b
Angka Hexadesimal harus mendapat akhiran "h", dan diawali dengan nol didepannya (A..F), contohnya: 0ABCDh
Angka Octal (base 8) mendapat akhiran "o", contohnya:
77o
|