一些汇编指令
AX Accumulator 用累加器进行的操作 输入输出 乘除 操作
BX 基址寄存器 (Base Register)
CX 计数寄存器 (Count Register)常用于 循环 计数器 在 位操作中 要用 CL来指明 位移的位数
DX 数据寄存器(Data Register) 在 进行 双字节 运算时 也可以 存放 io 的端口地址
MOV 数据传送指令
ADD 算数指令
编程环境 Masm 调试 工具 Debug
Debug cpu 各种 寄存器 的 内容 内存的情况 在机器码中 跟踪程序
Debug 命令
R: 查看 或者改变 cpu 寄存器的 内容
D: 以 十六进制的形式 显示 一块内存区域的内容
E: 改写 内存中的内容
A: 以 汇编的 的格式 在 内存中写入 一条 机器指令
U: 将机器中的汇编指令 翻译成 汇编指令
T: 执行 一条机器指令
Q: 推出 Debug
segment
每 16 字节 为 一段 paragraph
每段 可达 64k
段的大小 是 任意的
提供 段寄存器的 称为 段寄存器
8086cpu 有四个 CS DS SS ES
CS: 代码段寄存器
DS: 数据段寄存器
SS: 堆栈段寄存器
ES: 附加段寄存器
IP 指令 指针 寄存器
CS 和IP 当前要读取指令的地址
CS:IP
从cs ip 只想到 的 内存单元中 读取指令写到 指令 缓冲 器
ip=ip+ 所读取指令的长度 从而指向 下一条指令
能够 改变 cs ip的 内容指令 被称为 转移指令
一个 转移指令 jmp 指令
jmp 段地址 : 偏移地址
含义: 段地址 修改 cs 偏移地址 修改 ip
jmp 寄存器 用指令寄存器的 内容修改 ip
cs 的值是 不变的
sub 目的操作数 又称 源操作数
D 段地址 :偏移地址 单元开始的 128个 内存单元的内容
d 段地址 :起始偏执 结尾偏执
E: 改写内村中的 内容
内存单元的表示
方阔方括号的数据表示 内存大 偏移地址
ds 存放 数据单的 段地址
数据段 专门存放数据的段
8086 必须通过 寄存器送入到 寄存器
mov 寄存器 内存单元地址
取数据懂啊寄存器
mov 寄存器 数据
mov 寄存器 寄存器
mov 寄存器 内存单元
mov 内存单元 寄存器
mov 段寄存器 寄存器
mov 寄存器 段寄存器
mov 内存单元 段寄存器
mov 段寄存器 和 内存单元
段寄存器 ss 存放栈顶的 段地址
栈顶指针 寄存器 sp 存放栈顶的偏移地址
ss:sp 指向 栈顶的 偏移地址
栈段 stack segment
当做栈空间用的的段地址 称为 栈段 stack segment
栈段 继承了 栈的属性
长度 小于 64k 起始 地址为 16的倍数
段是 一种 逻辑上的划分
数据段 :存放数据的段
代码段 : 存放代码的段
栈段: 当做栈空间的的段
理解字在 内存中的 存储
使用 mov 在 寄存器和内存中 传递数据 包括 字节的传送 和字的传送
包括 入栈 和 出栈
理解 栈顶越界的问题
汇编程序的结构
编译 连接 执行
转载请注明文章出处:http://www.cnblogs.com/gredswsh Gredswsh 专栏