汇编语言 知识梳理

本文详细梳理了汇编语言中的CPU工作原理,包括寄存器的作用、内存访问方式以及程序的执行流程。讨论了CPU如何通过总线与外部交互,寄存器的使用,如ax、bx等,并介绍了数据传输指令如mov、add、sub。此外,还讲解了段寄存器如ds、ss、cs的用途,以及栈操作中的push和pop。最后,探讨了程序的执行,包括call和ret指令在函数调用和返回中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@[TOC]目录

寄存器(CPU工作原理)

寄存器(内存访问)

程序

第一章 寄存器(CPU工作原理)

CPU通过总线与外部进行交互操作,内部也有线。
总线分数据总线,地址总线,控制总线。
寻址能力是总线数的2^n。

字节:1
字:2字节

ax,bx因为了继承上版本应用,分ah,al;bh,bl四个,每个8字节,若指令中只有al,则就算需进高位也不可进在ah中。
低位字节在低位,高位在高位。

汇编指令
mov a,b ——a=b
sub a,b —— a=a-b
add a,b——a=a+b
jmp c——ip=c

ip会自动变化,每次ip=ip+所执行字数

物理地址=段地址*16(血汗工厂左移一位)+偏移量
段地址cs
偏移量ip

段的长度只是人为了自己方便画的

debug时:
r:查看寄存器内容 也可以改
例子: r cs
(显示cs)
输入自己想改的值
d:查看
例子:d fff0:0 ff(范围)
e 改写
例子 e b810:0 要改的值
u变成汇编指令
t=跳 就是执行一条指令
a 编呗
例子:地址 用汇编语言写入一个指令

二 寄存器(内存访问)

一、ds和addre

ds:要访问的数据的段地址
mov:1.将数据送入寄存器
2.将一个寄存器的内容送入另一个寄存器
3.把内存单元中的内容送入寄存器
例子:mov al,[0]
(段地址看当时运行情况)
[…]表示偏移地址,他的段地址默认放在ds
注意:mov ds,1000是错误的
8086不支持将数据直接送入段寄存器

所以 数据->通用寄存器->段寄存器

例子,如何将al的数据送入内存单元10000H?

结论:可行法之一:
mov bx,1000H
mov ds,bx
mov [0],al

二、字的传送
练就完了e r a t

mov,add,sub:
1.mov 寄存器 数据
mov 寄存器 寄存器
mov 寄存器 内存单元
mov 内存单元 寄存器
mov 段寄存器 寄存器
mov 寄存器 段寄存器(可验证)
(要实践哦~

2.add 寄存器,数据
add 寄存器,寄存器
add 寄存器,内存单元
add 内存单元,寄存器
sub 寄存器,数据
sub 寄存器,内存单元
sub 内存单元,寄存器
sub 寄存器,寄存器

(学编程需要探索 挖井)

3.栈wwwww
以字为单位
寄存器只是一个存储过渡器,不是变量
SS 段寄存器:栈顶段地址
SP 寄存器:存放栈顶的偏移地址
任意时刻,ss,sp指向栈顶元素

push ax时 sp=sp-2
pop ax 时 sp+=2

例子 当栈空 sp指向最高地址单

汇编语言是一种低级的计算机语言,它直接与计算机硬件进行交互。下面是汇编语言的基础知识整理: 1. 汇编语言的作用:汇编语言用于编写底层程序,如操作系统、驱动程序和嵌入式系统等。 2. 汇编语言的特点:汇编语言是一种符号化的机器语言,使用助记符来代替二进制指令,使程序更易读和理解。 3. 寄存器:寄存器是汇编语言中最基本的数据存储单元,用于存储数据和执行运算。常见的寄存器有通用寄存器、指针寄存器和标志寄存器等。 4. 指令:汇编语言的指令是对计算机硬件进行操作的命令。指令包括数据传输指令、算术运算指令、逻辑运算指令和控制指令等。 5. 内存访问:汇编语言通过内存地址来读取和存储数据。内存地址由段地址和偏移地址组成,通过段地址和偏移地址可以唯一确定内存中的一个位置。 6. 标志位:标志位是标记计算机状态的标志位,用于判断运算结果是否满足某些条件。常见的标志位有零标志位、进位标志位和溢出标志位等。 7. 标号和跳转:汇编语言中可以使用标号来标记程序中的位置,通过跳转指令可以根据条件或无条件地跳转到指定的标号处。 8. 子程序和栈:子程序是一段独立的代码块,可以在程序中被多次调用。栈是一种后进先出的数据结构,用于保存程序执行过程中的临时数据和返回地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值