随笔分类 - Assembly
摘要:第七章 and or and:位与运算 将第六位设为0 and ax, 1101_1111(2) or:位或运算 将第六位设为1 or ax, 0010_0000(2) 以字符给出数据 用' '(单引号)引用即可 db 'Unix' ;<==> db 75H, 6EH, ... [bx+idata]
阅读全文
摘要:第四章 源程序 汇编源程序: 伪指令(编译器处理) 汇编指令(编译为机器码) 程序返回 应在程序末尾添加返回的程序段 mov ax, 4c00H int 21H 汇编写出到执行 DOS
阅读全文
摘要:第二章 寄存器 8086cpu寄存器: AX BX CX DX SI DI SP BP IP CS SS DS ES PSW 通用寄存器:[A-D]X 为保证兼容性,这四个寄存器可以分为独立8个寄存器使用 | AX | AH(HIGH) | AL(LOW) | | : | : | | | BX |
阅读全文
摘要:第十一章 标志寄存器 引言 8086CPU标志寄存器有16bits,其中的存储信息叫程序状态字(psw) 标志寄存器按位表示意义 其中空的位无意义,保留 ZF标志位 zero flag 结果 == 0? zf=1 : zf=0 使用指令应注意是否影响标志寄存器 PF标志位 parity flag:结
阅读全文
摘要:第五章 [bx] mov ax, [0] ;[0]为常量 对nasm来说 mov ax, ds:[0] mov bx, 0 mov ax, [bx] ;将ds:bx处的内容赋值给ax loop 通常使用loop进行循环,cx作为循环次数 计算2^12 assume cs:code code segm
阅读全文
摘要:第一章 汇编组成 汇编指令 伪指令 其它符号 指令和数据 指令与数据是应用上的概念,实际两者没有区别,内存或磁盘的信息,既可是指令,也可是数据 存储器 存储单元组成 cpu对存储器读写 需要: 地址信息(存储单元) 控制信息 数据信息 地址总线 cpu有N个地址总线,则可寻址内存单元2^N 数据总线
阅读全文
摘要:第九章 转移指令的原理 offset start : mov ax, offset start jmp mov jmp short s ; 机器码 `EB 03`,03表示向后跳转3个字节大小 mov ax, 12 ; 机器码 3位 s: mov ax, ax cpu不需要目的地址实现对IP的修改
阅读全文
摘要:第十章 call ret ret 与 retf ret 使用栈中的数据,修改 ip,进行程序跳转 CPU执行ret时,进行以下步骤: (ip) = (ss * 16 + sp) (sp) = (sp) + 2 retf 同ret,修改 ip 和 cs (ip) = (ss * 16 + sp) (s
阅读全文
摘要:第六章 包含多个段的程序 数据段 计算 0123h,0456h,0789h……的和 dw:即 define word,在这里后面的数据存储在cs的开始出,即mov bx, 0的前面 start:因为dw开始出是数据,而不是代码(指令),所以使用start指明代码段开始位置 将数据,代码,栈放入不同的
阅读全文
摘要:第八章 引言 bx, si, di, bp 对于bp来说,它的默认段寄存器为ss 数据所在位置 指令执行之前,所处理的数据在三个地方:内存、cpu内部、端口 指明数据长度 寄存器 word ptr, byte ptr 指令默认,push、pop默认操作字型数据 举例: 假设一段内存单元为: 2000
阅读全文
摘要:第三章 寄存器 内存中字的存储 即 在此图中,1地址字型为124EH,2地址字型为0012H DS和[address] ds作为段地址,address为偏移地址,同cs ds --> data segment 将1000H:0的内容读入al中 改变DS内容需要首先将数据存入通用寄存器,不能直接存入
阅读全文
摘要:详细解析ESP寄存器与EBP寄存器 参看 :http://www.tenouk.com/Bufferoverflowc/Bufferoverflow2a.html (英) https://blog.csdn.net/u011822516/article/details/20001765 (中)
阅读全文

浙公网安备 33010602011771号