码迷,mamicode.com
首页 > 编程语言 > 详细

1.机器语言和汇编语言

时间:2018-04-06 22:38:16      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:c语言   芯片   计算   寄存器   电子   使用   class   地址   翻译   

机器语言是机器指令的集合,机器指令是一列二级制数字,计算机又将转变一列高低电压,这样计算机的电子器件就受到驱动,进行运算了,每一个CPU都有自己的机器指令集,也就是规则,也叫做机器语言,早期的程序员编写代码,都是打洞呢,程序员将用0、1数字编成的程序代码打在纸带或者卡片上,1打孔,0就是不打孔。这样很显然不容易记忆,所以就开发了汇编语言,机器指令1000100111011000 表示把寄存器BX的内容送到AX,但是 汇编则写成,mov ax,bx。这样的写法与自然语言就很接近了,不是么,所以说,程序员真?聪明呢

但,机器指令怎么翻译成汇编指令呢,这就需要我们的编译器了,

 

在计算机中有专门连接cpu和其他芯片的导线,称为总线,根据传送信息的不同,总线从逻辑上分为:地址总线,控制线和数据总线

地址总线:CPU是通过地址总线来指定存储单元的。(寻址)

数据总线:CPU与内存或其他器件的数据传送通过数据总线。(传数)

控制总线:CPU对外部器件的控制是通过控制总线来进行的。(控力)

假如10条地址总线,意味着它能寻址1024个,因为210是1024,一条总线只要两种状态,高电压和低电压

 不同CPU,寄存器的个数不一样,结构不一样,8086CPU有14个寄存器,分别为:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW.

8086CPU的所以寄存器都是16位的,可以存放2个字节,(A~D)X 四个寄存器存一般数据,被称为通用寄存器;

而这四个寄存器又可分别 分为2个8位寄存器来用

  • AX分为AH和AL
  • BX分为BH和BL
  • CX分为CH和CL
  • DX分为DH和DL

一句话,AX的寄存器的低8位(0~7)叫AL寄存器,高8位(8~15)叫AH寄存器。AH和AL可独立使用

终于开始语法了

mov ax,18   将18送入到寄存器AX里       AX=18(C语言)

add ax ,18   将寄存器AX的数值加上18      AX+=18(C语言)

mov ax, bx      将寄存器BX的数字送入到AX里      AX=BX

add ax,bx    将寄存器BX的数值加上AX放到AX里   AX+=BX

我们知道8086CPU是16位机 而16位机代表什么呢 :

  • 运算器一次最大处理16位的数据
  • 寄存器的最大宽度位16位
  • 寄存器和运算器之间的通路为16位

 

1.机器语言和汇编语言

标签:c语言   芯片   计算   寄存器   电子   使用   class   地址   翻译   

原文地址:https://www.cnblogs.com/xiaofei12/p/8728815.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!