汇编语言学习总结
因为基础知识薄弱,自己计划在学校毕业前想再好好学习学习基础知识。读的书中有王爽的《汇编语言》和《Intel汇编语言程序设计》,这两本书都特别棒,现在将学习的一些新的记录整理下来。
第一部分:汇编语言工具、平台介绍
第二部分:汇编语言基本语法
1. 在汇编语言里,寄存器数据的存储位置至关重要,下表就列出了多种寻址地址的方法。
2. 字单元和字节单元
用X ptr指明内存单元长度:
mov byte ptr [1000H],1 mov word ptr [1000H],1
寻址地址在结构体和字段上的使用方法,下图是对应修改C语言结构体里汇编语言的方法:
3.div除法的使用方法
div reg div 内存单元
被除数默认在ax或dx和ax中,如果除数是8位,被除数是16位,默认在ax中;如果除数是16位,被除数是32位,默认在ax和dx中。
4. 在8086cpu中只有4个寄存器是可以使用[...]进行内存单元寻址的。
1)bx bp si di
2)bx->si di bp->si di
3)bp默认的是ss为段寄存器,bx默认的为ds为段寄存器
汇编函数中数据位置
立即数、寄存器、段地址和偏移地址()
5. 命令
dd:定义double
dup:配合db,dd,dw使用,重复
6.偏移指令的原理
CPU执行指令顺序:
a.从CS:IP指向内存单元读取指令,读取指令存入指令缓存器
b.(IP)=(IP)+1,指向下一条命令
c.执行命令。转向a,重复。
offset:
jmp:
jcxz:
7.转移指令