無符號數和有符號數在彙編程式裡如何區分

2021-03-07 07:38:54 字數 1932 閱讀 9497

1樓:會飛的小兔子

在彙編程式裡是沒有無符號數和有符號數區分的。

加減運算指令是不區分有符號和無符號的,在計算機對有符號整數的表示只採取一種編碼方式,不存在正數用原碼,負數用補碼的問題。

在組合語言裡宣告變數的時候,沒有signed和unsignde之分,彙編器全部將輸入的整數字面量當作有符號數處理成補碼存入到計算機中,只有這一個標準,並且全部彙編成補碼。也就是說,db-20彙編後為:ec,而db236彙編後也為ec。

db是分配一個位元組,一個位元組能表示的有符號整數範圍是:-128~+127,那麼db236超過了這一範圍,+236的補碼的確超出了一個位元組的表示範圍,那麼拿兩個位元組是可以裝下的,應為:00ec,也就是說+236的補碼應該是00ec,一個位元組裝不下。

00ec是兩個位元組,被截斷成ec,當把236當作無符號數時,它彙編後的結果正好也是ec。

擴充套件資料無符號數和有符號數的使用

#include

#include

intmain()

2樓:仁昌居士

無符號數和有符號數在彙編程式裡區別為:識別符號不同、二進位制不同、範圍不同。

一、識別符號不同

1、無符號數:無符號數在宣告變數的時候,帶unsigned識別符號。

2、有符號數:有符號數在宣告變數的時候,帶signded識別符號。

二、二進位制不同

1、無符號數:無符號數在編譯時,轉為二進位制,所有數位用作數值位,代表數值。

2、有符號數:有符號數在編譯時,轉為二進位制,用最高位作為符號位,「0」代表「+」,「1」代表「-」 ;其餘數位用作數值位,代表數值。

三、範圍不同

1、無符號數:若機器字長為n+1位,無符號數的範圍為0~2^(n+1)。

2、有符號數:若機器字長為n+1位,有符號數的範圍為-2^n+1~2^n。

3樓:匿名使用者

在組合語言層面,宣告變數的時候,沒有 signed 和 unsignde 之分,彙編器統統,將輸入的整數字面量當作有符號數處理成補碼存入到計算機中,只有這一個標準,彙編器不會區分有符號還是無符號然後用兩個標準來處理,它統統當作有符號的,並且統統彙編成補碼。

舉例來說:

記憶體裡有 一個位元組x 為:0x ec ,一個位元組 y 為:0x 02 。

當把x,y當作有符號數來看時,x = -20 ,y = +2 。當作無符號數看時,x = 236 ,y = 2 。

下面進行加運算,用 add 指令,得到的結果為:0x ee ,那麼這個 0x ee 當作有符號數就是:-18 ,無符號數就是 238 。

所以,add 一個指令可以適用有符號和無符號兩種情況。

乘法運算就不行了,必須用兩套指令,有符號的情況下用imul 得到的結果是:0x ff d8 就是 -40 。無符號的情況下用 mul ,得到:0x 01 d8 就是 472 。

4樓:匿名使用者

加減運算指令是不區分有符號和無符號的,程式設計人員自己要心理有數。計算機對有符號整數的表示只採取一套編碼方式,不存在正數用原碼,負數用補碼這用兩套編碼之說,大多數計算機內部的有符號整數都是用補碼,就是說無論正負,這個計算機內部只用補碼來編碼!!!只不過正數和0的補碼跟他原碼在形式上相同,負數的補碼在形式上與其絕對值的原碼取反加一相同。

5樓:匿名使用者

最高位為1時負數,最高位為0是整數。10000000是-12810000001是-12711111111是-1即處理器的補碼方式:如果運算元是8位先確定二進位制00000000~01111111為十進位制0~127,然後按位取反加1即是它的負數。

補碼中每個負數取反加1而且也是它的正數。例子:二進位制00010000是十進位制的16,那麼-16就是11101111(取反)+1=11110000。

10000000是負多少呢?找取反加1:01111111+1=10000000=128,所以是-128。

組合語言符號數最大者送入MAX,組合語言 三個符號數最大者送入MAX

還是自己寫吧,別人把你寫你學不到什麼東西。我的賬號就是我的qq,你不會的話可以問我,盡我所能幫你。desg segment buffer dw 0fe17h,03a23h,0ff20h max dw string db max desg ends code segment assume cs cod...

微控制器的組合語言如何判斷兩個無符號數的大小

誰跟你說圖上是判斷有符號數大 小的程式?這程式就是比較無符號數大小的,只不內過加了資料容搬運而已。查了一下pic的subwf指令,的確是比較有符號數的。如果要比較無符號數,可先判定兩個數的最高位是否同號 若異號,則最高位為1者大 若同號,再用subwf減法判定大小,參考書上這個例程。組合語言程式設計...

是什麼數學符號,數學符號「 」 「 」 「 」是什麼意思?

它並沒有什麼特別的意思,比如我想表達2的9次方,但是我沒有右上角的很小的數字9,所以 2 9 代表2的9次方,差不多就是一個在電子產品常見的符號 表示前面那個數的平方 乘方,x 2就是2的平方。懂?採納哦!數學符號 是什麼意思?這三個是數學的邏輯符號,是非的意思,專門否定一個命題,p與 p一真一假 ...