討論區快速選單
知識庫快速選單
網路投保旅行平安險 政府補助!學嵌入式+物聯網 討論區最近新進100則主題
[ 回上頁 ] [ 討論區發言規則 ]
請教c轉換組合語言的問題
更改我的閱讀文章字型大小
作者 : w326785419(阿龍)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/4/24 下午 01:56:06
//#include <stdio.h>
//#include <stdlib.h>
void main(void){
int a=12345, b=256;
unsigned char H,L;
H=a/b;
L=a%b;
//printf("H=%d L=%d\n",H, L);
}


若我不能使用除法指令我改成了
text
.globl main

main:
la $t0, ab
lw $t1, 0($t0)
srl $t3, $t1, 8
.data
ab:.word 12345

可是L=a%b;這部分我實在是想不出來
麻煩各位了 謝謝
作者 : jason680(Jsn) 貼文超過200則
[ 貼文 209 | 人氣 1 | 評價 810 | 評價/貼文 3.88 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2013/4/25 下午 03:30:18
基本,在組合語言中,除法與取餘數是同一個...
註:在我學過的x86 CPU是這樣, 其他ARM,Sparc應該都差不多的原理...

我沒用過你用的組言所以不知暫存器名稱與指令...
但基本原理是一樣的...
例:
  A(64bits) / B(32bits) = 會得到 商C(32bits) 與 餘數D(32bits)

就看你的CPU,如何定義A,B,C,D暫存器

以x86 CPU為例
    div CX; A為DX:AX(共32bits), B為 CX(16bits)
     結果 商C 為 AX(16bits), 餘數D為 DX(16bits)

    div EBX; A為EDX:EAX(共64bits), B為 EBX(32bits)
     結果 商C 為 EAX(32bits), 餘數D為 EDX(32bits)
 板主 : 徵求中
 > 組合語言 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 組合語言 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
組合語言
1 H 2220 
2 liaoo 990 
3 青衫 970 
4 牧童哥 940 
5 史努比 920 
6 qq 480 
7 GHOST-JACKY 330 
8 ]CALL-151 310 
9 harrison 300 
10 掌握文武半邊天 280 
組合語言
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875