汇编语言怎么变成机器指令的

比如,下面这些数字就是存放在内存中的8086指令
B8 3F 00 01 C3 01 C1
他们的意思是
将立即数003FH传送到寄存器AX;
将寄存器BX的内容和寄存器AX的内容相加,结果在BX中;
将寄存器CX的内容和寄存器AX的内容相加,结果在CX中。
这三个的汇编语言是

mov ax,3FH
add bx,ax
add cx,ax
那么把这三条汇编语言输到计算机里面,计算机怎么把这三条汇编语言变成机器指令的?谢谢!

请打开你的计算器

调为16进制,复制B8 3F 00 01 C3 01 C1然后转为二进制

10111000001111110000000000000001110000110000000111000001
CPU是只能识别1和0的,准确的来说CPU也不能识别1和0
CPU其实就是一个简单的电路开关,它对高电平和低电平产生逻辑运算,其中高电平就代表1,低电平就代表0
所以汇编已经很贴近机器语言了,当然你不可能去学习机器语言,因为
mov ax,3FH
add bx,ax
add cx,ax
转成机器语言就是
10111000001111110000000000000001110000110000000111000001
根本看不懂吧

说漏了,其实你没发现即便是汇编还是需要编译的,这个编译过程就是将汇编语言转成机器语言追问

这个编译的过程是怎么完成的?

追答

就是翻译,将汇编转成二进制文件保存
你可以打开可执行文件EXE里面全是二进制的,
其实说白了,硬盘里只保存2种文件,一种是指令文件,一种是信息文件,指令文件可被CPU执行,就是可执行文件,信息文件存放的是数据,CPU无法执行,当然也不是无法执行,只不过这些对于CPU来说都是乱码,执行毫无意义
具体原理学多了就知道了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-02-25

    每一条的汇编指令对应相应的机器指令,所以有了指令集和指令编码这回事

    编写完汇编之后,使用汇编器汇编这个你写的汇编代码

    汇编器根据内置的指令集把你的汇编指令替换成相应的机器指令就行

    最后加上相应的可执行文件头就行,Windows是PE头,Linux是ELF文件头

第2个回答  2016-01-20
编译软件,可把汇编语言,变换成机器语言。
它就像一个翻译软件,把中文、英文,互相翻。

人工编译,也可。
就像查字典一样。
查一个指令表,即可查到机器语言。
第3个回答  2013-08-20
汇编语言是一种以处理器指令系统为基础的低级语言,采用助记符表达指令操作码,采用标识符表示指令操作数。作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。常用的高级语言编译器有Microsoft公司的MASM系列和Borland公司的TASM系列编译器,还有一些小公司推出的或者免费的汇编软件包等。

您可以参考这个网址:
http://baike.baidu.com/link?url=YdcZdK3S23ifWP0LiM-2yj4oDsQR0fqK_o-AZHx1kINU6mjbLj25TmlQ_WB0duGeWirySGodm16F9tPlG8rHnK
第4个回答  2013-08-20
要用专用的编译软件
和你上面的过程的正相反。

把MOV AX,3FH 边编译成CPU可以执行的机器码:B8 3F 00
相似回答