当前位置: 代码迷 >> 汇编语言 >> 关于机器码,该怎么解决
  详细解决方案

关于机器码,该怎么解决

热度:161   发布时间:2016-05-02 04:33:55.0
关于机器码
可以通过 调式工具看到 助记符的十六机制
  这个十六进制 就是对应的机器码 只不过是十六进制?
  也许就是 如果通过IO将这十六进制写入的文件 会与 可执行的汇编文件一样 可运行?
  那么都是空格分开的 还是不必分开 硬件会对十六进制组成一个 指令前缀+操作码+ModR/M+SIB+移位+数据元素
  转化为二进制格式的一系列连续的1和0
  自动检索格式?

  就是说 助记符表示的十六机制就是二进制的机器码?
               使用IO将这二进制机器码写入 硬件直接可以识别?
               连续的? 没有格式? 硬件本身可以处理?
               是否硬件获取之前 要经过操作系统?那么是否还需要exe格式或是类似的格式检查 识别?
   编译器奖语言翻译成机器码 就是这样?
  
 求哥哥详解

------解决方案--------------------
引用
可以通过 调式工具看到 助记符的十六机制
  这个十六进制 就是对应的机器码 只不过是十六进制?

是的,转化成二进制就是机器码!
引用
  也许就是 如果通过IO将这十六进制写入的文件 会与 可执行的汇编文件一样 可运行?

为什么搞的那么麻烦呢?如果你非要亲手写二进制可执行文件可以用一些专门的二进制文件编辑器,不过需要先了解相应的硬件平台,指令相关的东西!(注意:二进制文件和文本文件的区别)
引用
  那么都是空格分开的 还是不必分开 硬件会对十六进制组成一个 指令前缀+操作码+ModR/M+SIB+移位+数据元素
这些指令有定长指令,也有变长指令,针对不同的硬件平台有所不同,不过CPU就是干这个的,指令之间没有空格,全部用01代码填充! 二进制文件全部由0和1构成,空格是文本文件的专利!
 
引用
 自动检索格式?

CPU就是做这种工作的,按照二进制程序文件的指令执行预先设定的操作!

------解决方案--------------------
是滴,以前一直用机器码直接些二进制指令
  相关解决方案