mipsのlsb(最小符号ビット)とmsb(最上位ビット)の方向はどちらですか?
たとえば、32ビットの16進数の0x12345678を持っている場合、これは4ビット(最下位ビットと最上位ビット)の正しいビットでしょうか?
LSB = 0x00005678
MSB = 0x12340000MIPSのlsbとmsbの方向はどちらですか?
0
A
答えて
2
あなたはそれを実現していないかもしれませんが、あなたはトリックの質問をしてきました:MIPSはリトルエンディアンまたはビッグエンディアンのいずれかとして構成することができます。
、コードを介しているかを決定することができる:32ビット整数変数に1を割り当て、最下位ビットが0
0
スコット・ハンターはあなたを与えた他の全てのビットと、進み1なり正しい答え。しかし、あなたのコメントに基づいて:
の16 LSBを取得する2つの32ビットのint型の引数を取る関数を作成しようとしています私は、32ビットのint結果の上部および下部にそれぞれ格納の両方の16ビット
あなたの関数はレジスタの値がすでにであるため、エンディアンが関係しないので、問題はと同じに関係なくエンディアンに関係なく発生します。ここで
はあなたの機能を実現するプログラムです。ここで
# swap -- combine two 32 bit integers lower 16 bits
.data
msg_nl: .asciiz "\n"
.text
.globl main
main:
li $a2,0x01020304
move $a0,$a2
jal print
li $a3,0x05060708
move $a0,$a3
jal print
move $a0,$a2
move $a1,$a3
jal swap
move $a0,$v0
jal print
li $v0,10
syscall
# swap -- combine lower 16 bits of two arguments into single 32 bit number
#
# arguments:
# a0,a1
#
# returns:
# v0 = ((a0 & 0xFFFF) << 16) | (a1 & 0xFFFF)
#
swap:
li $v0,0xFFFF # get mask
and $a0,$a0,$v0 # isolate lower 16 bits
and $a1,$a1,$v0 # isolate lower 16 bits
sll $v0,$a0,16 # retval = arg1 << 16
or $v0,$v0,$a1 # retval |= arg2
jr $ra
# print -- print a number in hex
print:
li $v0,34
syscall
la $a0,msg_nl
li $v0,4
syscall
jr $ra
は、そのプログラムの出力です:
0x01020304
0x05060708
0x03040708
しかし、ちょうどScottの答えに追加するには、ここにありますエンディアンを計算するプログラム。 endian
関数を抽出してコードに追加してください:
# endian -- calculate endian
.data
endian_data: .word 0
msg_pre: .asciiz "machine is "
msg_big: .asciiz "big"
msg_little: .asciiz "little"
msg_fin: .asciiz " endian\n"
.text
.globl main
main:
li $v0,4
la $a0,msg_pre
syscall
jal endian
bnez $v0,main_big
la $a0,msg_little
j main_exit
main_big:
la $a0,msg_big
main_exit:
li $v0,4
syscall
la $a0,msg_fin
syscall
li $v0,10
syscall
# endian -- determine big-endian or little-endian
#
# RETURNS:
# v0 -- 0=little, 1=big
endian:
li $v0,1
sw $v0,endian_data
lb $v0,endian_data
jr $ra
関連する問題
- 1. BlackBerryの磁力計の方向 - どちらの方向?
- 2. MIPSの32ビット整数のMSBを取得する
- 3. Phonegap:FileTransferとAjaxはどちらですか?
- 4. シンプルで短い論理アルゴリズム(どちらの方向に向いていますか)
- 5. LSB AppChecker:未使用ライブラリとのGCCリンク
- 6. iOSのAVCaptureAudioFileOutputはどちらですか?
- 7. MIPS:範囲エラーのうちアドレス
- 8. パッケージ 'unittest'は両方のソース 'sdk'と 'hosted'のどちらの意味ですか?
- 9. MSBの建物エラー
- 10. C#どの方向から音が来るのですか?
- 11. LLVM /打ち鳴らすは、MIPSにoutputingが、SPIMで働いていない....
- 12. マイクロソフトのダイナミクス - どちらが向いているか。 ERPまたはCRM
- 13. イメージビューアのソフトウェアレンダリングとハードウェアレンダリングはどちらですか?
- 14. メトロとWPF for Windows 8の開発はどちらですか?
- 15. mysql、ifnullとcoalesceはどちらが速いのですか?
- 16. MongoDBとAmazon CloudのDynamoDBはどちらですか?
- 17. ArrayFireと未処理のCUDAプログラミングはどちらですか?
- 18. IOLoop.add_callbackとTornadoのIOLoop.add_timeoutはどちらですか?
- 19. セマフォとミューテックスはどちらが速いのですか?
- 20. BrownfieldとGreenfieldの開発はどちらですか?
- 21. ASP.NETで双方向(双方向)データバインディングとは何ですか?
- 22. 外部キー制約を追加する場合、どちらの方向がベストプラクティスですか?
- 23. WPFでの水平方向から垂直方向のWrapPanel
- 24. どちらの方法を使うのが良いですか
- 25. 設定データの保存 - どちらの方法ですか?
- 26. .NET - int32プラットフォームのMSBは不可能ですか?
- 27. ウィンドウベースのアプリケーション:どちらですか?
- 28. E_NOTIMPLとE_NOINTERFACEのどちらを選択するのですか?
- 29. SQLite_TRANSIENTとSQLITE_STATICのどちらを使用するのですか?
- 30. WPFとローカルデータベースのどちらを選択するのですか?
これはデフォルトです。デフォルトはありませんか? – localplutonium
私は2つの32ビットint引数を取る関数を作成しようとしていますが、それぞれ16 lsbを取得し、32ビットint結果の上位と下位の両方に16ビットを格納します – localplutonium