• 締切済み

68000アセンブリ

68000アセンブリについて質問ですが以下の処理で正しい結果が出てないのですがなぜでしょう? やりたいことはf(x)=(x+4)(x+1)をx=-3のときを求める。 ただしxを32ビット符号付き2進数でするのですがうまくいきません   move.l #-3,d0   move.l d0,d1 addq.l #4,d1 move.l d0,d2 addq.l #1,d2   muls.w d2,d1 一つ一つの処理を見たときにmulsのところが間違っていたので いろいろ調べた結果掛け算はこれを値を16ビットにしないといけないのだろうと思いましたが、 符号拡張はEXTがありできるのですが32ビットが16ビットになる命令がありません。 どうすればいいかわかるかた教えてください。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

一応確認ですが「mulsのところが間違っていた」というのはどういうことでしょうか? 単に「乗算の結果が正常な値ではない」ということでいい? ついでにいうと結果がいくらになったのかが気になります. ま~最悪マスクしちゃえばいい (だから個別の命令としては存在しない) ような気がするけど....

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 68000のアセンブリ 

    68000のアセンブリでプログラミングをしていてわからない ところがあって下の部分がわかりません MOVE.L (A2)+,-(A1) MOVE.L (A2)+,-(A1) MOVE.L (A2)+,-(A1) MOVE.L (A2)+,-(A1) がわかりません わかるかたおしえてください。 popとpushがmove命令に関わってくるとこれでメモリの内容がどう書き換わってくるかわかりません よろしくお願いします。

  • アセンブリ言語にて、

    アセンブリ言語にて、 「乗算Z←X×Yを、 ビットシフト(ROT命令ほか)で用いた計算手順と、 加算(ADD命令)の各長所、短所を比較しなさい」 という問題の答えがわかりません・・・ 教えていただけませんか?

  • 2進数の掛け算ができません

    初めまして。2進数の掛け算で困っています。よろしくお願いします。 10進数で2*(-3)=-6ですが、これを3bitの2進数で行ないたいと思います。 すると、010*101(2の補数)=01010となります。 -6は10(2の補数)となるはずですが答えが異なります。 符号拡張というものがあるということで、次はそれで行なってみます。 010*1101(符号を拡張した2の補数)=011010となります。 答えが異なります。ますますわけがわかりません。 ---------- 次に10進数で(-1)*(-1)=1ですが、これを2bitの2進数で行ないたいと思います。 すると、11(2の補数)*11(2の補数)=1001となります。 1は1となるはずですが答えが異なります。 符号拡張というものがあるということで、次はそれで行なってみます。 111(符号を拡張した2の補数)*111(符号を拡張した2の補数)=110001となります。 答えが異なります。ますますわけがわかりません。 ---------- 話は変わるのですが、 Nビット×Mビット=N×Mビットになる とのことです。これも理解できません。 どなたかご教授をお願いしますm(__)m

  • アセンブリ言語の問題です。

    以下のプログラム実行後のレジスタ$v0の値を書け,16進の数値には0xをつけること 問題0: addi $s0,$zero,0 addi $s1,$zero,2 beq $s0,$s1,L1 sub $v0,$s0,$s1 beq $zero,$zero,L2 L1: add $v0,$s0,$s1 L2: addi $v0,$v0,1 分岐命令の動作の問題です。分かる方がいましたら回答をよろしくお願いいたします。 sub:減算 addi:即値付き演算命令 beq:等しい L:ラベル

  • C で、a、b、c が16ビット符号無し整数のとき

    C で、a、b、c が16ビット符号無し整数のとき、 a = 0x7FFF * b / c; の途中結果の 0x7FFF * b は 16ビット符号無し整数として処理されるのですか。32ビットで処理してくれたら便利なのですが。

  • アセンブリ言語でのプログラミングの質問です

    私は、現在情報工学科の学生です。現在学校でアセンブリの授業を受講しているのですが、どうしてもこの問題の掛け算の仕方のプログラミングがわかりません。私も自分でできる限り考え、教科書や書物を読んでみましたが掛け算というものが、どうすれば表せるのかがわからず、ここで質問しました。問題の回答と解説を教えてください、お願いします。 9000H番地の1バイトデータをA、9001H番地の1バイトデータをBとしたとき、AxBを16ビットで求め、下位1バイトを9002H番地、上位1バイトを9003H番地に格納するプログラムを作りなさい。またこのプログラムの実行時間をデータがA=65H、B=0AEHのときに計算しなさい。実行時間の計算では各命令の実行回数を示し、計算式を詳しく書くこと。

  • 情報学についての質問です。

    考えても理解できなかったので教えてもらえるとうれしいです。 問 配列A,Bに正負の符号と絶対値の十進数をアスキーコードで表された値が入力されている。正負は0の時'#'、負の時は'-'で表され、続いて絶対値が一桁10進数の文字表現として代入されている。 (a)符号と絶対値がそれぞれCL,ALレジスタに与えられているとき、その値を8ビット符号付き整数としてBLレジスタに入力するsubroutinABSのフローチャートと命令コードを書く。 (b)配列A、Bの値をそれぞれ8ビット符号付き整数に変えた後、それらの和をDLレジスタに求める命令を書く。(a)のsubroutinを使う。 (c)(b)でDLレジスタに求められた8ビット符号付き整数を正負の符号と絶対値をアスキーコードで表し下の配列Cに入れる。この処理のフローチャートと命令コード書く。 DL:1111 1111B   のとき、  C: '-'、'1'  とする。 詳しい解説とともに解答していただけるとありがたく思います。お願いします。

  • アセンブリ言語

    アセンブリ言語で『筆算的加減算』でプログラムを作成する演習問題が出ました。4月から習い出し全くわからないので参考にさせて頂きたいです。 実行例は⬇️ 1→123 2→456 計算→+  123 +456 --------  579 条件は 入力する2個の整数は正(+)のみとする。 入力する整数の桁数は3桁以内。 足し算は+、引き算はマイナス-を入力する。 負の値は入力しないが、結果の負('-')は表示する。 入力のエラー処理を行う。

  • PDP-11のアセンブラ課題

    学校の課題で出されたものです。 まだ勉強をはじめたばかりでどこから手をつけていいのかわかりません>< ○PDP-11のアセンブラは、MOV#1,R2を次のような2語の機械語に翻訳する。PDP-11は、これをど  のように解釈し、どのように実行するのか説明せよ 0001010111000010 0000000000000001 ○PDP-11のMOV命令を使用し、以下の命令のアセンブリ言語表現、機械語表現を示せ。 ・R5が示すアドレスにジャンプする命令 ・サブルーチンから戻る命令 ・R0をスタック上にプッシュする命令 ○次のプログラムをPDP-11のアセンブリ言語で作成せよ。 ・R0が示す番号以降のR2が示すバイト数をR1が示す番号以降に転送 ・R1(上位16ビット)R0(下位16ビット)が示す符号付32ビット値を符号反転 宜しくお願い致します。

  • アセンブリプログラムの問題です。

    アセンブリプログラムの勉強をしているのですが、以下の問題がわかりません。 (1) 変数f, g, h, i, j はCのプログラム内で32ビットの整数として宣言されているものとする。 以下のCのステートメントをMIPSのアセンブリコードで表せ。 また、f, g, h, i, j の値がそれぞれ1, 2, 3, 4, 5 であるならば最終的なfの値はいくつか。 a. f = g + f + i ; b. f = g + (h + 2); (2) 変数f, g, h, i, jはそれぞれ$s0, $s1, $s2, $s3, $s4に割り当てるられているものとする。また、配列AとBのベースアドレスは、それぞれレジスタ$s6 と$s7 に割り当てられているものとする。 次のCのステートメントをMIPSのアセンブリコードで表せ。 a. f = g + h + B[4] ; b. f = g - A[ B[4] ] ; c. f = -g + h + B[1] ; d. f = A[ B[g] + 1 ] ; (3) (2)の設定において、次のMIPSのステートメントをCのステートメントで表せ。 また、可能ならばこのMIPSアセンブリコードを同じ機能を果たしながらMIPS命令の数が最小になるように書き直せ。 a. add $s0, $s0, $s1 add $s0, $s0, $s2 add $s0, $s0, $s3 add $s0, $s0, $s4 b. lw $s0, 4($s6) 以上です。わかるものだけでも良いので教えてもらえますでしょうか?

このQ&Aのポイント
  • ハガキを印刷する際にA4用紙に印刷される問題や、手差しでのテストプリントが絡まって出てこない問題が発生しています。
  • 背面を開けることでテストプリントは出せるものの、印刷するとスキャナーエラーが何度も表示される状況です。
  • 店頭ではこのエラーが頻繁に発生しており、解決策を求めています。
回答を見る