@[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指向最高地址单