随笔分类 - 汇编
摘要:中断的机制: 在地址0处有中断向量表,表中有多个项,每一项4字节,是中断程序的入口地址(seg:offset)。 Nop指令和xchg ax,ax的机器码一样 封锁前缀指令lock,可放在任何指令前面,效果是封锁总线,使别的控制器无法控制总线,指令执行完后解除封锁,常用于多线程同步,例如InterL
阅读全文
摘要:联合编译: 1. 新建文件mylib.inc, 结构体定义,函数声明等都放在此头文件中,函数声明中加far,例如: BubbleSort proto far C wCount:word, pAryNumber:word 为防止重复包含,可设置头文件保护: ifndef MYLILB_INC MYLI
阅读全文
摘要:子程序设计时 Push bp Mov bp, sp Sub sp, 2 再push其他需要保存的寄存器,这样可以不受保存要寄存器个数的影响,用bp+4定位到第一个参数,且释放局部变量空间时使用mov sp, bp即可。 宏调用中的参数如果有小于<符号,需要转义,写为!< 代码定式: if(){ ..
阅读全文
摘要:一. 转移指令:可以修改IP,或同时修改CS和IP的指令,分为 1. 段内转移:只修改IP,jmp的目标代表相对于当前IP的偏移,而不是地址。如 jmp offset8 ;机器码EB XX jmp offset16 ;机器码E9 XXXX jmp ax jmp word ptr[XXXX] 段内转移
阅读全文
摘要:通常流水线的操作如下: 根据CS:IP取指令 译码 取源操作数(有些指令没有) 执行指令功能 写入结果(有些指令没有) 存储器寻址方式: 直接寻址 :mov ax,[1234] 2. 寄存器间接寻址:mov ax,[bx] 8086 支持的间接寻址寄存器是bx,bp,si,di 3. 寄存器相对寻址
阅读全文
摘要:1. 移位指令,移出的位保存在CF里 SHL reg/mem, 1/CL ;逻辑左移,右侧补0,移出的位保存在CF里。 SHR reg/mem, 1/CL ;逻辑右移,左侧补0,移出的位保存在CF里。 SAL reg/mem, 1/CL ;算数左移,等同于逻辑左移,机器码也相同 SAR reg/me
阅读全文
摘要:1. 乘法指令 1.1 无符号乘法MUL MUL r8/m8 ;AX<--AL * r8/m8 MUL r16/m16 ;DX.AX<--AX * r16/m16 MUL r32/m32 ;EDX.EAX<--EAX * r32/m32 1.2 有符号乘法IMUL IMUL r8/m8 ;AX<--
阅读全文
摘要:通用数据传送指令 MOV reg/mem, imm Mov reg/mem/seg, reg Mov reg/seg, mem Mov reg/mem, seg Mov word ptr[bx], 1234 ;传立即数时要说明word或byte Mov [si], al ;al已经隐含说明数据长度
阅读全文
摘要:缩写: 寄存器 reg/R8/R16/R32 内存单元 mem/m8/m16/m32 立即数 imm/imm8/imm16/imm32 累加器 (ax系列) al, ax, eax, rax 源src 目标dest 通常流水线的操作如下: 根据CS:IP取指令 译码 取源操作数(有些指令没有) 执行
阅读全文
摘要:8个通用寄存器 16 bit accumulate ax ah al R0 count cx ch cl R1 data dx dh dl R2 base bx bh bl R3 stack sp R4 stack base bp R5 source si R6 destination di R7
阅读全文
摘要:涉及硬件传输数据的,往往包含以下内容: 1.数据传输引脚(数据放哪里) 2.控制引脚(怎么控制) 3.状态引脚(结果如何) 寄存器相当于CPU内部的存储单元,可能是连续排列,相当于C语言中的数组。 一.8个通用寄存器 16 bit accumulate ax ah al R0 count cx ch
阅读全文
摘要:DOS汇编中字符串结束标志是美元符号$ DOS操作系统会把com文件装载到0x100的位置并执行代码 debug命令: assemble A [address] compare C range address dump D [range] enter E address [list] fill F
阅读全文

浙公网安备 33010602011771号