8086简要汇编笔记
来源:互联网 发布:linux 查看挂载磁盘 编辑:程序博客网 时间:2024/06/16 14:59
通用寄存器:ax bx cx(循环) dx
栈寄存器 :ss sp
执行代码:cs ip
堆段寄存器:ds
使用bp []默认ss
辅助:di si
codesg segment:
可能存在数据
start: 代码开始片段,使ip为代码开始位置
mov ax,4c00H 结束返回0
int 21h 21号中断
codesg ends
end start
mov cx,num
s:
loop s 循环num次 (转移)
assume 编译器指令 cs:sg 将寄存器值变为sg
sg segment
sg ends
push pop 字操作
word ptr/byte ptr
dw dd
db
num dup (data) 定义重复数据
add sub
div dx ax / word ptr ds:[] (16位)-> ax ... dx
ax / byte ptr [] (8位) ->al ...ah
低位存值 高位存余
Inc 自增 dec 自减
mul al(8位) * byte ptr ds:[] ->ax
ax * word ptr [] ->dx高 ax低
jmp 无条件转移 偏移量
段内转移
-128-127 短转移 short
-32768-32767 近转移 near ptr
word ptr 地址在内存中的 段内转移
dword ptr 段间转移 cs:ip
far ptr 段间转移
jcxz 有条件短转移
if(cx==0) jmp short
offset 获取偏移地址
ret 用栈中数据,修改IP 实现近转移
retf 用栈中数据 修改CS IP 实现远转移
Iret 用于int的指令的返回
call=
push IP
jmp near ptr
call word ptr
call far ptr
call dword ptr
flag (如mov,push,pop转移指令不影响)
ZF 记录结果是否为0 结果是0为 1 否则为0
PF 偶数1 奇数0
SF 记录结果是否为负 负为1 非负为0
CF 记录最高有效位向更高有效位的进位值或借位值(仅用于无符号计算)
OF 溢出标志,发生溢出为1 ,否则为0(仅用于有符号计算)
DF 方向标志位 cld df=0 std df=1
adc = 对象1 +对象2 +CF
sbb = 对象1 - 对象2 -CF
cmp
ZF A=B,ZF=1 A!=B,ZF=0
CF A<B A-B CF=1 ,A>B A-B CF=0 ZF=0,A>=B CF=0 OR ZF=1,A<=B CF=1 OR ZF=1
je
jne
jb
jnb
ja
Jna
Movsb df =0 si+1 di +1 df =1 si-1 di-1
Movsw
Rep movsb
Pushf popf 将标志寄存器的值压栈或出栈
内中断
除法错误 0
单步执行 1
Into 4
Int n
Iret pop ip pop cs popf
TF =1 单步执行
IF=1 响应中断 sti cli
不中断特殊情况:例如mov ss 由于给sp设置让步,不响应中断
In out 端口读写
Shl 左移 将最后移出 的一位写入CF中 最低位用0补充shr右移
直接定址表
a db 1,2,3 同时描述内存地址和单元长度 例如code:0以后的都是单字节单元
a[]
Assume Ds:data (仅仅关联,并不表示ds中一定是data段)
Data segment
A db 1,2,3,4
Data ends
Code segment
Mov si,0
Mov ax,data
Mov ds,ax
A[si]
Code ends
Int 9h 键盘中断写入环形队列缓冲区 in al,60h端口
Int 16h 从缓冲区读取 ah=扫描码 al=ascii
Int 13h 磁盘中断
Ah = 02h 读 03h写
Es:bx 内存映射空间
Al 读取 写入的扇区数
Ch 磁头号
Cl 扇区号
Dl 驱动器号
Dh 磁头号
逻辑扇区号= (面号*80+磁道号)*18+扇区号-1
c0s.obj
8086汇编下可变长传参
- 8086简要汇编笔记
- 8086汇编指令笔记
- X86反汇编简要说明
- 8086汇编笔记(0)
- 【汇编学习(一)】8086CPU-段地址-偏移地址简要理解
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 模块和包问题
- 基于i2c子系统的驱动分析-设备树
- 解决Eclipse SVN文件冲突详解
- 中兴新支点操作系统上的快捷键
- 插入排序
- 8086简要汇编笔记
- 1.20Android 学习+进度之二十-图片进一步
- 安卓自定义View进阶:Path基本操作
- iOS开发之C语言函数库
- Dash:程序员的的好帮手
- 做摄像双机位直播(多机位直播)的整个流程的介绍
- python 3.6 群发 附件 html格式 邮件
- Jenkins API
- RedHat6.5上安装Hadoop单机