汇编原理

介绍

汇编语言,是除了“机器语言” 最底层的语言
  很多驱动 嵌入式程序,都是用汇编写的
  他是直接工作在“硬件”上的编程语言,所以效率很高

由于机器语言,全都是01,过于繁杂。 所以产生了 汇编语言
“汇编指令" 和 “机器指令”, 是一一对应的

比如, 1001100111011000 这个机器指令
	他的含义是:  将寄存器bx里的内容 送到 寄存器ax里去
其对应的汇编指令为: MOV  ax, bx

机器语言

机器语言/机器指令,是cpu“唯一”可以认定的命令
  都是一堆01
 
比如,某个机器指令是: 01010000   他的含义是: push AX(把ax推入堆栈)
  这个指令对应的“电平脉冲”: 0为低电平,1为高电平
  “电平脉冲”: cpu的工作原理

指令与数据

从二进制的角度看: 	
	在“内存”或“磁盘”里,指令和数据是没有区别的!!!
	
比如对于一个: 1000100110110 就单纯这个2进制的串
   他可能是:  	0x89A   (即代表一个16进制的“数据”)
   也可能是:    MOV ax,bx  (即代表一个“指令”,代表寄存器内容的复制)

cmd命令

g++  1.cpp  -S  -o  1.s

字节

以mov执行为例子, 他有: movb,  movw,  movl,  movq
  b: byte   		传送的是,一个字节
  w: word	 		传送的是,一个字 (2字节)
  l: long word   	传送的是,两个字 (4字节)
  q: long/char*    四个字   (8字节)

函数参数

void func(long a, long b, long* c){
   ..}
a参数是在%r
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值