Java教程

2021-4-18汇编语言

本文主要是介绍2021-4-18汇编语言,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

内存单元和地址

– 物理地址:通常使用十六进制表示

– 内存单元与内存容量有关

– 物理地址的最大值
1.CPU运算能力
2.地址总线宽度
16位的CPU对应的地址总线是16根,最大地址位0xFFFF。
32位————————————32————————0xFFFFFFFF。

  • 物理地址 = 段地址16+偏移地址
    例:再8086CPU是16位,但地址总线有20根,本来最大只能表示16位地址值,但CPU设计者为了能表示20位地址,使用段地址
    16+偏移地址表示20位地址。

  • 如果表示一个20位物理地址0xFFFFA,有以下写法
    0xFFFFA=0xFFFF16+0x000A //=0xFFFF0+0x000A
    0xFFFFA=0xFFF0
    16+0x00FA
    0xFFFFA=0xFF0016+0x0FFA
    0xFFFFA=0xF000
    16+0xFFFA
    计算机的寻址能力不仅和CPU有关,还和地址总线有关。

栈和队列

栈和的队列都是数据存储结构,数据结构大致包括

  • 线性表,还可细分为顺序表、链表、栈和队列
  • 树结构,包括普通树、二叉树、线索树
  • 图存储结构
  • 队列结构:先进先出。
  • 栈存储结构:先进后出。
    – 用于存储临时数据,对数据进行暂时性保护,不被复写。

寄存器和栈的区别

  • 寄存器是通用的容器,所有的函数都可以对寄存器都可以操作。(寄存器中的数据容易被干扰,用于短期使用)

汇编语言

工具下载

链接:https://pan.baidu.com/s/1dtZihaDdtc6OT1fnnWqb3g
提取码:bxit

汇编语言:指令集。
8086语法和指令集,16位。

x86汇编语法

1.注释

;我是注释(分号)

2.变量取值和赋值(传送指令)
  • ;赋值
    mov ax,2000H ;将十六进制2000赋值给十六位寄存器ax相当于ax = 2000H

  • ;取值
    mov bx,ax ;将ax中的值取出赋值给bx。
    – 存放的数据大小根据使用的寄存器而定,比如ax是16位寄存器 ,只能存放16位数据
    – 十六进制数据不能以字母开头,前面需要加0,例如0FFFFH
    – 无符号数据默认为10进制数据

3.函数声明
  • 结构
    结构名:
    函数体
    ret ;结尾标记|跳到调用函数的下一句
  • 4.函数调用
    x86架构中使用关键指令:call
    示例:
call print

mov ah, 4ch
int 21h

print:
mov dx,offset str
mov ah,9ch
int 21h
ret
这篇关于2021-4-18汇编语言的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!