アプリ版:「スタンプのみでお礼する」機能のリリースについて

アセンブリプログラミングを使用したいです;(ARMアセンブリ)

数値を受け取り、その除数を出力するプログラムにするにはどうすればよろしいでしょうか?

質問者からの補足コメント

  • どう思う?

    すみません、特定の数に割ることができる数値を求めたいです。(x86 and ARM assemblyで)

    例:  8→1,2,4,8

    No.2の回答に寄せられた補足コメントです。 補足日時:2021/02/27 09:44

A 回答 (3件)

>>数値を受け取り、その除数を出力するプログラムにするにはどうすればよろしいでしょうか?



使うマシンのアセンブラ言語仕様を調べて、目的の処理をフローチャートで記述して、コーディング、テストする。
    • good
    • 0
この回答へのお礼

わかりました。

お礼日時:2021/03/04 06:05

ゴメン、意味が分からんわ。



> 数値を受け取り、その除数を出力するプログラム

除数って「割り算で、割る方の数。」って意味なんですけど?
一つしか数値がないのにその除数は定義出来ませんよね?
用語間違ってませんか?
この回答への補足あり
    • good
    • 0
この回答へのお礼

すみません、要するに約数です。わかりづらかったですよね汗

お礼日時:2021/03/04 06:05

> 特定の数に割ることができる数値を求めたいです。


> 例:  8→1,2,4,8

単に「約数」を求めたい、って事ね。

いや、だったらまずは例えばCコードでも書いて。

#include <stdio.h>
#include <stdlib.h>
int main(void) {
 char s[10];

 scanf("%9s%*[^\n]%*c", s);
 long num = strtol(s, NULL, 10);

 for (int i = 1; i <= num; i++) {
  if (num % i == 0) {
   printf("%d ", i);
  }
 }
 printf("\n");
 return 0;
}

あとはgccでも使って-Sオプション付きでアセンブリファイル吐き出させれば良いでしょう。
なお、gccのクロスコンパイル環境の作り方は次のページに書かれています。

Linux上に各種クロスコンパイラ環境を構築する:
https://qiita.com/xecus/items/1660c826f0b8ec14a3a6

「Linux上に」って書いてるけど、多分CygwinとかminGWでも大丈夫なんじゃないかな。
あるいは、Windows Subsystem for Linux (WSL)とか。
その辺どうするかはお好みで。
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2021/03/04 06:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!