x86汇编语言

简介

  汇编语言实际上就是将0101这种2进制设计成单词字母这种便于阅读的形式来编程,在实际编译完成之后生成的可执行代码还是将汇编指令再重新转化成机器指令的0101这种2进制形式。
  
问:汇编是如何转变成机器指令?
答:通过编译器将写好的汇编指令进行编译后生成机器指令。
  

1. 寄存器的概念

  简单来说就是CPU中可以存储数据的器件,1个CPU可以有多个寄存器,我们一般可以给寄存器取一个别名,比如AX、BX。

2. 汇编语言的组成

1、汇编指令(机器码的助记符)每一种CPU都有自己的汇编指令集
2、伪指令(由编译器执行)
3、其他符号(由编译器识别)
  汇编语言的核心是汇编指令,它决定了汇编语言的特性。

1. 8086CPU

  8086有20位地址总线,可传输20位地址,寻址能力为1M,但是因为内部为16位总线结构,因此需要采用段地址加偏移地址的形式来完成

1.1. 8086CPU寄存器的介绍

8086CPU有14个寄存器,他们分别是:
AX、BX、CX、DX、
SI、DI、SP、BP、IP、
CS、SS、DS、ES、PSW。
寄存器位数为16位
  AX、BX、CX、DX通常用来存放一般性的数据被称为通用寄存器。
  由于上一代的8086CPU寄存器都是8位的,为了兼容,这4个寄存器都可分为2个独立的8位寄存器使用,如:AX可分为AH和AL。
  CS、SS、DS、ES是提供段地址的段寄存器,分别为指令地址、堆栈地址、数据地址、备用地址
  SP是栈顶的指针,任意时刻SS:SP指向暂定元素

  CS和IP是8086CPU中最关键的寄存器,CPU当前要读取执行的代码内容就是根据CS的段地址加地址偏移IP来决定的。
  由于mov指令是无法修改CS、IP的内容,我们可通过8086提供的转移指令jmp 段地址:偏移地址的形式来间接修改CS和IP

1.2. 汇编指令集

汇编指令集不区分大小写
mov ax,18 ;注释:将18送入ax
mov ah,78 ;注释:将78送入ah
add ax,08 ;注释:将ax内的值加8
mov ax,bx ;注释:将bx内数据送入ax
add ax,bx ;注释:将ax、bx数据相加,结果保存在ax
sub    注释:为减法,用法参考mov

1.3. Debug的使用

  可以直接从cmd输入debug进入debug工具。debug的命令如下:
-R:查看改变CPU寄存器的内容
-D:查看内存中的内容
-E:改写内存中的内容
-U:将内存中的机器指令翻译成汇编指令
-T:执行一条机器指令
-A:以汇编的指令格式在内存中写入一条机器指令

1.4. 数据结构

1.4.1. 栈

指令集
push: 入栈
pop : 出栈

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值