我正在爲一個簡單的計算器編寫MIPS代碼,並想知道如何根據用戶輸入分支到相應的函數。例如,如果用戶希望添加兩個數字,您如何確保計算器跳轉到添加標籤,而不是可能的乘法或減法?分支到標籤
分支到標籤
回答
將用戶輸入註冊到註冊表中。
然後使用beq指令將它與第一個ascii值比較,比如說'+'。
.data
plus: .asciiz "+"
sub: .asciiz "-"
prod: .asciiz "*"
div .asciiz "/"
.text
.global calculator
.align 2
.ent calculator
calculator:
//t0 holds user input
la $t1,plus
lb $t1,0($t1)
beq $t0,$t1,add
//now check for subtraction, division product. Same code, just change the address (add)
//if none matched, jump to error
b error
add:
//addition code goes here
division:
//division code goes here
product:
//product code goes here
subtraction:
//subtraction code goes here.
error:
//error code goes here.
據我所見,這種方法只能用於3種不同類型的輸入,而不是4種。所以我怎樣才能確保它如果有第四個值需要比較,則分支到另一個標籤? 假設用戶輸入'+'(ascii 43),並將其與ascii 45( - )進行比較,如果小於,則可以使用分支,但'*'的ascii也小於45,那麼我該如何確定它會轉到'+'標籤而不是'*'。 – Taylor 2009-11-28 18:49:10
不要把它想成大於/小於。把它看成更像一個switch語句。 – Tom 2009-11-28 18:55:01
我已經編碼了一個這樣的例子。如果有必要,會發布它,但試着理解這一點。 – Tom 2009-11-28 20:10:37
- 1. 標籤和分支
- 2. 從標籤分支
- 3. 從clearcase標籤合併到git分支
- 4. Git標籤與分支
- 5. SVN標籤/分支更新
- 6. Git - 分支或標籤?
- 7. 分支和標籤SVN
- 8. Git標籤從主分支分離
- 9. 如何使分支來自/ team標籤中的分支Repo Directory
- 10. Git標籤和分支版本是?
- 11. 設置主分支最新標籤
- 12. 標籤vs git中的分支
- 13. TFS:分支,標籤還是擱置?
- 14. 將分支移至新標籤
- 15. 更好使用標籤或分支?
- 16. git:有沒有像每分支標籤?
- 17. 的Git分支/標籤名稱^ {}
- 18. svn2git不提取分支或標籤
- 19. 將git分支轉換爲git標籤
- 20. 從標籤欄控制器分支?
- 21. 標籤名稱的CVS分支名稱
- 22. 如何克隆git分支的標籤?
- 23. 分支,標籤,軀幹在SVN
- 24. 如何合併分支上的標籤?
- 25. 開發分支的Gitflow標籤?
- 26. SVN Git分支/標籤/樹幹
- 27. mercurial:分支與標籤衝突
- 28. 混帳 - 標籤與分支同名
- 29. 我用groovy中的標籤拉分支
- 30. Github API - 獲取標籤的分支
請發佈一些信息。你有什麼,你需要什麼。你已經有一些你可以告訴我們的代碼了嗎? – EricSchaefer 2009-11-28 17:47:55
我有代碼,當用戶輸入要執行的函數(+ - * /)時,它將其作爲ascii值存儲在其中一個臨時寄存器中。我的問題是,如何確保用戶輸入的功能跳轉到執行該功能的正確標籤。 例如,如果用戶想要添加數字,則跳轉到添加而不是減去(如下所示)。 addnum: add.s $ F12,F1 $,$ F0#加在一起數量和投放系統調用結果寄存器 Ĵ結果 subnum: sub.s $ F12,F1 $,$ F0 Ĵ結果 – Taylor 2009-11-28 17:55:34
我滾回到'[作業]'的添加 - 在這種情況下,您需要首先詢問它。請參閱http://meta.stackexchange.com/questions/10811/homework-on-stackoverflow – 2009-11-28 18:15:06