zz2679493
三十而立
級別: 略有小成
|
有沒有什么好辦法,把紅框里面的數據轉移到雙字數據寄存器,我想的土辦法用K1000,K100相乘相加 |
---|---|
|
楓落云端
施主,腳抬一下
級別: 略有小成
|
字符型全在低位,先把D104到D112的低位字符用BTOW 變成連續的字符串型的數字,再用字符轉浮點數指令EVAL轉成浮點數11.9522 |
---|---|
|
tkggtdkjpl
工欲善其事,必先利其器!
級別: 網絡英雄
|
要先判斷是正是負,是不是0,排除后在處理! |
|
---|---|---|
|
zz2679493
三十而立
級別: 略有小成
|
一樓的方法試了一下,EVAL轉之后,后面的數據一直為零,可能沒試對,我再試試,感謝提供思路 |
---|---|
|
菜鳥入行
級別: 論壇先鋒
|
D1 是16位的 MUL D1 K1 D10 后,變32位的 |
|
---|---|---|
|
楓落云端
施主,腳抬一下
級別: 略有小成
|
圖片:
根據樓主圖片上的數據模擬了一份,完全可以得出正確的浮點數。上圖為證。另外多一句,EVAL可以連帶符號一起給轉成正確的浮點數。比如字符串為"-011.952" |
---|---|
|
zz2679493
三十而立
級別: 略有小成
|
感謝一樓,我一開始按VAL的格式,怪不得數據一直都為零 剛用EVAL指令也報錯,要32位才行,這個我再研究下,十分感謝,這樣兩個指令就夠了,省了一大段基礎指令 |
---|---|
|
楓落云端
施主,腳抬一下
級別: 略有小成
|
EVAL指令因為是對字符操作,所以使用的時候一定要特別注意。EVAL所取的寄存器不能為空值,也不能是非正常數字表達方式的字符,比如出現ABCDEFG等一些不是數字字符的數據。不然CPU必定會報錯 |
---|---|
|
zz2679493
三十而立
級別: 略有小成
|
指令說明書上對EVAL的介紹里,沒有16位的指令,一樓你是怎么打出來的 [upload=2] |
---|---|
|