将下列汇编程序段翻译成机器语言,并写出完整的翻译过程将下列汇编程序段翻译成机...
LA $a0,0x10000000lw $t0,($a0)
mult $t0,$t0
mflo $t1
sw $t1,4($a0) 1. 先看一下这5行代码,看到有 la lw sw 等指令,初步判断这是 riscv汇编语言,但是发现两个没见过的指令 mult mflo
百度 mflo没有发现什么,百度 mflo指令,发现这是 mips汇编
没办法,谁让你不告诉我这是什么汇编语言,还得我通过百度来找到这是mips汇编语言
如果你告诉我的话,这第1步就完全是没有必要的,对吧?
2. 输入 pacman -Ss mips 发现有一个 mips-elf-gcc 的包
3. sudo pacman -S mips-elf-gcc 安装这个包
4. 点击 “复制代码”,把你的代码复制下来
5. 输入 vim main.s
然后输入 ;p 把代码粘贴到main.s 文件
输入 :x 保存退出vim
6. 输入 mips-elf-gcc main.s 发现报错
7. 尝试解决这个问题,输入 mips-elf-gcc -c main.s 这样就没有报错
8. 输入 objdump -S main.o 依然报错,不认识main.o 这个文件格式
9. mips-elf-objdump -S main.o
然后输出如下
$ mips-elf-objdump -S main.o
main.o: file format elf32-bigmips
Disassembly of section .text:
00000000 <.text>:
0: 3c041000 lui a0,0x1000
4: 8c880000 lw t0,0(a0)
8: 00000000 nop
c: 01080018 mult t0,t0
10: 00004812 mflo t1
14: ac890004 sw t1,4(a0)
18: 00000000 nop
$
10. 第2列就是机器语言的十六进制表示
11. 就是这样
12. 嗯,还有12,第12是 sudo pacman -Rscn mips-elf-gcc 删除第3步安装的这个包,因为我用不到这个,所以有这第12步来删除这个包
嗯,不对,翻译出来的指令不对
你这是32位的mips汇编语言 ?
嗯,应该是没问题,
lui a0,0x1000
和
LA $a0,0x10000000
应该是等价的
大概
人造人 发表于 2022-4-11 22:54
嗯,不对,翻译出来的指令不对
你这是32位的mips汇编语言 ?
对,32位mips汇编语言
人造人 发表于 2022-4-11 22:59
嗯,应该是没问题,
lui a0,0x1000
和
大佬,能帮我看看我的帖子第36题么?谢谢 hg870827 发表于 2022-4-13 21:49
大佬,能帮我看看我的帖子第36题么?谢谢
嗯,我抽时间帮你看看
今天是不行了,明天有时间的话
人造人 发表于 2022-4-11 22:59
嗯,应该是没问题,
lui a0,0x1000
和
大佬太强了
页:
[1]