. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  机器码和汇编指令是不是一一对应的?  [已解决] 回复[ 5次 ]   点击[ 544次 ]  
ok100fen
[帖 主]   [ 发表时间:2010-11-05 23:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:6
注册日期:2010-06-06 21:29
在第一章说是机器码和汇编指令是一一对应的
但是,通过反汇编代码,觉得好像不是一一对应的

哪位朋友能简要说明一下


谢谢
masmaster
[第1楼]   [ 回复时间:2010-11-06 09:38 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
这是一个很深话题。 楼主需要深入intel指令编码方面的知识。就目前来说,王爽的教材里不涉及这些知识。
ok100fen
[第2楼]   [ 回复时间:2010-11-06 22:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:6
注册日期:2010-06-06 21:29
我记得在第8页的小结中
也就是1.1--1.10的小结中,有这么一句话:汇编指令是机器指令的助记符,和机器指令一一对应
masmaster
[第3楼]   [ 回复时间:2010-11-06 22:16 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
回复:[第2楼]
------------------
建议楼主有机会阅读《Intel汇编语言程序设计》第五版,第十七章关于指令编码的知识。 这东西不是一句两句能说得清的。
scuzg
[第4楼]   [ 回复时间:2010-11-08 22:36 ]   [引用]   [回复]   [ top ] 
荣誉值:307
信誉值:0
注册日期:2009-03-15 23:46
不是一一对应的,通过mov指令的下述例子即可看出:
-u100 10c
0AFC:0100 B008          MOV     AL,08
0AFC:0102 88C4          MOV     AH,AL
0AFC:0104 B80800        MOV     AX,0008
0AFC:0107 89C3          MOV     BX,AX
0AFC:0109 A00002        MOV     AL,[0200]
0AFC:010C A10002        MOV     AX,[0200]
对应汇编语言指令 mov ,机器指令是很不一样的;其实如果汇编语言指令和机器语言真的是“一一对应”的,学习汇编要记忆的指令要多很多。另外下述若干组汇编语言指令:
       shl 和 sal;
       jz 和 je;
      jnz 和 jne;
      jc 和 jb、jnae
      jnc 和 jae、jnb
的机器码是完全一致的,即一条机器指令对应 2 至多条汇编语言指令。
ok100fen
[第5楼]   [ 回复时间:2010-12-09 23:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:6
注册日期:2010-06-06 21:29
此贴由 贴主 于 [ 2010-12-09 23:21 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved