![](/img/trans.png)
[英]In MIPS Assembly, how do I truncate to two decimal places if I have a floating point value X.YZDEF in a floating point register?
[英]Show a floating point register value in binary in assembly
因此,我必須創建一個匯編函數,該函數將改變處理器舍入數字的方式。 我有那個。 現在,我需要證明這一點。 因此,我需要將1個值寫入屏幕,然后更改舍入方法,然后寫入相同的值,並檢查它在最低有效螳螂位上是否已更改。 然后我該如何以IEEE 754格式編寫3.14值,如下所示:
0 10000000 10010001111010111000011
我的意思是該函數可以將其printf
或返回它,因此我可以從C調用該函數。
沒有辦法用printf輸出二進制文件。 如果需要這樣做,則必須編寫自己的函數。 SO已經對此進行了介紹,例如here 。
如果要分解浮點數的組成部分(IEEE 754單精度),則可以使用如下所示的並集:
union float_bits
{
float f;
struct bits
{
unsigned int s:1;
unsigned int m:23;
unsigned int e:8;
} b;
};
然后,將浮點數加載到f中,然后從bs / bm / be中讀取符號/尾數/指數
您可以使用FST指令將FPU注冊表的值復制到內存,使用MOV指令將其加載到CPU寄存器(C局部變量)中(假設您使用的是x86架構)
請記住,FPU寄存器具有80位
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.