我会如何转换英特尔80386机code到汇编语言? [英] How might I convert Intel 80386 Machine Code to Assembly Language?
问题描述
我已经给出了以下任务:
I've been given the following task:
考虑十六进制值的顺序如下:
Consider the following sequence of hexadecimal values:
55 89 83 E5 08 EC 83 E4 F0 31 C9 BA 01 00 00 00 B8 0D 00 00 00 01 01 D1 CA 48 79 31 F9 C0 C9 C3
55 89 E5 83 EC 08 83 E4 F0 31 C9 BA 01 00 00 00 B8 0D 00 00 00 01 D1 01 CA 48 79 F9 31 C0 C9 C3
重新$ P $字节这一序列psents在英特尔80386机器语言子程序在32位模式
This sequence of bytes represents a subroutine in Intel 80386 machine language in 32-bit mode.
-
在这个子程序中的指令执行时,他们离开在寄存器%ECX和EDX%值。什么是价值观?
When the instructions in this subroutine are executed, they leave values in the registers %ecx and %edx. What are the values?
什么是在C程序执行这个子程序进行计算,然后打印这个程序%ECX和,因为他们将出现在子程序执行结束%EDX的计算出的值。
What is the program in C that carries out the computation done by this subroutine, then prints the values computed by this program of %ecx and %edx as they would appear at the end of the execution of the subroutine.
由于我没有做80386指令集的记忆,我必须首先这些运code字节转换成他们的汇编语言助记符当量。那么,有没有一个在线参考的地方,表映射的十六进制值指令等等?我检查了英特尔的网站,但能找到什么。还是有更好的方法去破译这个...?
As I do not have the 80386 instruction set memorized, I must first convert these opcode bytes into their assembly-language mnemonic equivalents. So, is there an online reference somewhere, a table mapping hex values to instructions or the like? I checked out Intel's website, but could find nothing. Or is there a better way to go about deciphering this...?
推荐答案
虽然你可以的作弊的并使用dissassembler(反汇编不会的非常的学习帮助),我真的建议学习的由的英特尔80386手册。与第17章开始如果/当你遇到问题,回来计算器和张贴问题,正是说明你已经在多大程度上得到了什么你不明白。
While you could cheat and use a dissassembler (a disassembler would not be very much help in learning), I would recommend actually learning something by reading the relevant chapters in the Intel 80386 manual. Start with Chapter 17. If/when you get stuck, come back to StackOverflow and post a question stating exactly how far you've gotten and what you don't understand.
这篇关于我会如何转换英特尔80386机code到汇编语言?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!