鱼C论坛

 找回密码
 立即注册
查看: 3557|回复: 7

[已解决]将下列汇编程序段翻译成机器语言,并写出完整的翻译过程将下列汇编程序段翻译成机...

[复制链接]
发表于 2022-4-11 21:36:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
LA $a0,0x10000000
lw $t0,($a0)
mult $t0,$t0
mflo $t1
sw $t1,4($a0)
最佳答案
2022-4-11 22:33:16
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步来删除这个包

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-11 22:33:16 | 显示全部楼层    本楼为最佳答案   
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步来删除这个包

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-11 22:54:55 | 显示全部楼层
嗯,不对,翻译出来的指令不对
你这是32位的mips汇编语言 ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-11 22:59:18 | 显示全部楼层
嗯,应该是没问题,
lui        a0,0x1000

LA $a0,0x10000000
应该是等价的
大概
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-12 22:42:11 | 显示全部楼层
人造人 发表于 2022-4-11 22:54
嗯,不对,翻译出来的指令不对
你这是32位的mips汇编语言 ?

对,32位mips汇编语言
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-13 21:49:11 | 显示全部楼层
人造人 发表于 2022-4-11 22:59
嗯,应该是没问题,
lui        a0,0x1000

大佬,能帮我看看我的帖子第36题么?谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-14 00:49:37 | 显示全部楼层
hg870827 发表于 2022-4-13 21:49
大佬,能帮我看看我的帖子第36题么?谢谢

嗯,我抽时间帮你看看
今天是不行了,明天有时间的话
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-14 14:57:51 | 显示全部楼层
人造人 发表于 2022-4-11 22:59
嗯,应该是没问题,
lui        a0,0x1000

大佬太强了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 15:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表