質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Q&A

0回答

2208閲覧

MIPSによるアセンブラ言語の疑問

masana

総合スコア8

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

0グッド

0クリップ

投稿2017/06/11 05:34

###前提・実現したいこと

学校の課題でMIPSのアセンブリ言語を書いているのですが、同じエラーに悩まされています。もし分かる方がいましたら教えていただきたいです。

問題:入力された2つの文字の掛け算の九九の表を作りなさい。
目標は下記の画像のようにすることです。

イメージ説明

###発生している問題・エラーメッセージ

Instruction references undefined symbol at 0x00400014 [0x00400014] 0x0c000000 jal 0x00000000 [main] ; 188: jal main

###該当のソースコード

#Data Segment .data msg: .asciiz "\n" row: .asciiz "please input the number of rows : " column: .asciiz "please input the number of columns : " line: .asciiz "--" haifun: .asciiz "-" line2: .asciiz "|" space2: .asciiz " " space1: .asciiz " " plus: .asciiz "+" #Text Segment .text .globl main COUNT: move $t4,$a0 li $v0,0 li $t6,10 CLOOP: addi $v0,$v0,1 div $t4,$t4,$t6 ble $t4,$zero,CEND j CLOOP CEND: jr $ra func: addi $sp,$sp,-20 sw $a0,0($sp) sw $a1,4($sp) sw $s0,8($sp) sw $s1,12($sp) sw $s2,16($sp) move $t0,$a0 #row move $t1,$a1 #column li $t2,1 move $a0,$t0 addi $sp,$sp,-4 sw $ra,0($sp) jal COUNT lw $ra,0($sp) addi $sp,$sp,4 move $t4,$v0 li $t5,5 sub $t4,$t5,$t4 move $t6,$t4 li $t5,1 WIDTHr: li $v0,4 la $a0,space1 syscall sub $t4,$t4,$t5 bgt $t4,$zero,WIDTHr li $v0,1 move $a0,$t0 syscall li $v0,4 la $a0,space1 syscall la $a0,line2 syscall WIDTH1: li $v0,4 la $a0,space1 syscall sub $t6,$t6,$t5 bgt $t6,$zero,WIDTH1 mul $t3,$t0,$t2 li $v0,1 move $a0,$t3 syscall FLOOP: li $t5,5 #width beq $t2,$t1,FEND addi $t2,$t2,1 mul $t3,$t0,$t2 move $a0,$t3 addi $sp,$sp,-4 sw $ra,0($sp) jal COUNT lw $ra,0($sp) addi $sp,$sp,4 move $t4,$v0 li $v0,4 la $a0,line2 syscall sub $t4,$t5,$t4 li $t5,1 WIDTH: li $v0,4 la $a0,space1 syscall sub $t4,$t4,$t5 bgt $t4,$zero,WIDTH li $v0,1 move $a0,$t3 syscall j FLOOP FEND: li $v0,4 la $a0,line2 syscall la $a0,msg syscall la $a0,line syscall syscall syscall li $t0,0 FENDLOOP: addi $t0,$t0,1 li $v0,4 la $a0,plus syscall la $a0,line syscall syscall la $a0,haifun syscall bne $t0,$t1,FENDLOOP li $v0,4 la $a0,plus syscall la $a0,msg syscall lw $a0,0($sp) lw $a1,4($sp) lw $s0,8($sp) lw $s1,12($sp) lw $s2,16($sp) addi $sp,$sp,20 jr $ra prep: addi $sp,$sp,-4 sw $a0,0($sp) li $t0,1 #counter move $t1,$a0 li $v0,4 la $a0,space2 syscall syscall syscall#spaceを6つ la $a0,line2 syscall#"|"を出力 li $v0,4 la $a0,space2 syscall#spaceを2つ li $v0,1 move $a0,$t0 syscall#t0を出力 li $v0,4 la $a0,space2 syscall#spaceを2つ prepLOOP: li $v0,4 la $a0,line2 syscall#"|"を出力 beq $t0,$t1,prepEND addi $t0,$t0,1 move $a0,$t0 addi $sp,$sp,-4 sw $ra,0($sp) jal COUNT lw $ra,0($sp) addi $sp,$sp,4 move $t4,$v0 li $t5,4 sub $t4,$t5,$t4 li $t5,1 WIDTHc: li $v0,4 la $a0,space1 syscall sub $t4,$t4,$t5 bgt $t4,$zero,WIDTHc li $v0,1 move $a0,$t0 syscall li $v0,4 la $a0,space1 syscall j prepLOOP prepEND: la $a0,msg syscall la $a0,line syscall syscall syscall li $t0,0 prepENDLOOP: addi $t0,$t0,1 li $v0,4 la $a0,plus syscall la $a0,line syscall syscall la $a0,haifun syscall bne $t0,$t1,prepENDLOOP li $v0,4 la $a0,plus syscall la $a0,msg syscall lw $a0,0($sp) addi $sp,$sp,4 jr $ra main: li $v0,4#文字列の出力システムコールコード4 la $a0,row syscall#"please input the number of rows : " li $v0,5 syscall#整数の入力 move $s0,$v0 li $v0,4#文字列の出力システムコールコード4 la $a0,column syscall#"please input the number of columns : " li $v0,5 syscall#整数の入力 move $s1,$v0#s1=v0 li $v0,4#文字列の出力システムコールコード4 la $a0,msg syscall#改行 move $a0,$s1#s1をa0に格納 addi $sp,$sp,-4 sw $ra,0($sp) jal prep#prepにジャンプ lw $ra,0($sp) addi $sp,$sp,4 li $s2,1 LOOP: move $a0,$s2 move $a1,$s1 addi $sp,$sp,-4 sw $ra,0($sp) jal func lw $ra,0($sp) addi $sp,$sp,4 beq $s0,$s2,END addi $s2,$s2,1 j LOOP END: jr $ra

###補足情報(言語/FW/ツール等のバージョンなど)
.asmという拡張子のプログラムを書いています。
実行環境はQtSpimというソフトウェアを使っています。
MacOSでの実行です。

このプログラムで実現したいのは下記の画像のような
見た目をコンソールに出力することです。

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問