• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

关于汇编中的机器码的问题,请高人指点!

在学习汇编的时候,总是看到会涉及到关于机器码的问题.
比如:二进制码0000 0100B可以表示为04H.04H所对应的指令的意义是累加器A的内容加1.
那么这个04H怎么就对应的是累加器的内容加一了?直接写成INC A不是一个意思嘛!
我想请问这个机器码是用什么规则制定出来的?
机器码有什么用处?
是不是应该有个机器码查询表?
我初学不久,有很多问题不明白,希望各位高人指教~~谢谢!
全部回复(5)
正序查看
倒序查看
2007-04-04 13:30
对于劝我不要抠这些东西的人们就不用发言了,我先谢谢你们!我也没准备抠这写东西,就是想了解个大概~~~
0
回复
yrxinxin
LV.6
3
2007-04-04 18:12
@ren6071982
对于劝我不要抠这些东西的人们就不用发言了,我先谢谢你们!我也没准备抠这写东西,就是想了解个大概~~~
是有机器码表,不过,你想学的话,可以啊,慢慢背吧.
0
回复
pigjiang
LV.2
4
2007-04-04 21:17
@yrxinxin
是有机器码表,不过,你想学的话,可以啊,慢慢背吧.
汇编语言就是机器码,知识为了方便人的理解,把机器指令映射成了助记符的形式.
0
回复
sdjufeng
LV.6
5
2007-04-05 17:01
inc a 与04H是对应关系,不过你怎么把它输入单片机呢,单片机的指令译码器又怎么能认识前面的字符串呢,逻辑电路只能认识01代码,所以,只能输入04H,而这个代码很难被人接受,所以就定义了一个人们便于接受的符号:inc a
0
回复
njyd
LV.8
6
2007-04-05 21:25
  所有的计算机本身运行是都是执行的机器码,就是你说的那外0101的那个东东.
  最早的计算机编程时就要输入一条条的机器码,但机器码很难记,不直观.所以出现了汇编语言.这汇编语言好记些,但计算机不认识,需要编译成机器码才能给计算机执行.最早是人工编译,先写好汇编,然后查表把与汇编语言每句改写成相应的机器码,再把机器码一个字节一个字节输入到计算机中.俺就用过最早的Z80单板机(不是单片机),用数字键盘一条条输入.
  后来才出现用程序编译,但汇编与人所习惯的语言还有较大差距,每一条汇编指令只相对一条机器指令.为解决这个问题才出现与人所习惯的语言更相近的高级语言,每一句相当于好多条机器指令甚至整大段程序.高级语言就没法人工编译了,至少是非常非常困难,所以高级语言一开始就是用程序编译或解释的.
  简单地说,机器码就是计算机认识的指令或叫语言,汇编语言或高级语言是人认识的语言,汇编语言或高级语言CPU不认识,需要编译或解释成机器码计算机才能认识.
0
回复