汇编语言,汇编指令?
用汇编语言写指令
汇编语言还包括:伪指令, 符号指令。
伪指令是个编译器看的,告诉编译器怎么执行
机器指令 和 二进制?
用二进制写机器指令
汇编指令 和 机器指令?
汇编指令翻译成机器指令给cpu执行。
机器指令存放的地方?
内存中存放。
内存的构成:内存条,显卡中用显存,键盘中的内存,鼠标中的内存,还有其他设备或者叫部件的内存。
指令和数据都在内存中存储,对cpu来说,内存中的东西都是数据,那么cpu如何区分指令和数据?
cs : ip 组合寄存器中地址指向的内存空间的内容对cpu来说是指令。
那指令执行的过程是什么?
cpu从cs : ip 地址指向的内存单元中取出数据放在指令缓冲器中;
ip寄存器: ip = ip + 指令的字节数,因为每个指令都有长度,用几个字节存储。
执行指令寄存器中的内容,然后再重复回去。
一些汇编指令:
r :寄存器指令
d: 段地址:偏移地址 - 偏移地址 展示内存
u:将后续字节翻译成汇编指令 查看汇编指令
a :段地址:偏移地址 写入指令
e: 段地址: 偏移地址 修改内存
内存:
最小单位(储存单元)
字节(Byte)=2个16进制数字 = 8 个2进制数字 bit (比特)
对字节(储存单元)进行编号
它们是从0开始编号
1byte = 8bit
1kb = 1024 byte
1MB = 1024 KB
1GB = 1024 MB
1TB = 1024 GB
指令是有长度的,可以由多个字节组成,指令执行的过程:
1 cpu 从cs:ip所组成的地址处读取指令,将这个指令存放到指令缓冲器中
2 ip=ip+所读指令的字节数
3 执行指令缓存器中的内存,回到步骤1重复这个过程
10进制->2进制(机器指令)-》16进制-》汇编指令-》内存-》内存编号(内存地址)-》地址(寻址能力)-》数据线(至少8根表示一个Byte)-》控制线
寄存器-》数据寄存器-》地址寄存器-》通过cs:ip组成的地址 将里面的内容当作指令
段地址:偏移地址
ds ip
es sp
ss bp
cs si
di
bx
通过汇编指令 修改CPU寄存器中的内容 控制CPU,从而达到控制整个计算机的目的
mov ax,bx 移动 (注意数据长度)移动指令
add ax,ax
sub ax,ax 运算指令
jmp XXXX:XXXX (实际不这么写地址跳转)
call xxxx(很多形式,修改CSIP)
以上俩个都是转移指令
写程序经验:
数据在哪里?地址寄存器组合
AXBXCXDX 通用寄存器
处理数据
将结果存放起来 地址寄存器组合
cpu执行机器指令/汇编指令
汇编指令-》编译器—>机器指令
表示地址的线路:地址线(表示0或1,决定cpu寻址能力)