09 2023 档案
摘要:学习MASM汇编时有时会被各种语法弄混,其实很多指令的规则是很简单的,但编译器为了方便添加了伪指令来帮助编译器更准确的生成机器代码。为了深入理解伪指令背后的逻辑,特将8086的编码规则记录如下,以便随时参阅。 一、编码规范: 二、编码约定:
阅读全文
摘要:MASM中如果将程序直接跳转到指定地址执行,如1234:5678,如果直接这样jmp 1234:5678或jmp [1234]:[5678]都无法通过编译,在debug中jmp 1234:5678倒是可以。那么如何能到达这个目的呢? 一、普通方法: 1、通过将地址保存到变量,然后far jmp: j
阅读全文
摘要:8086和186都是运行在实模式(real mode)下,从286开始支持保护模式(protected mode)。 下面是8086和186的完整指令集,参考《Microsoft Macro Assembler Reference Manual》,方便查阅。 一、操作符(Oprand)中缩写的含义:
阅读全文
摘要:在学习16位MASM汇编中,label并不陌生,在代码中通过名称+冒号(:)的形式定义label非常常见。但label伪指令却不常见,但有时确实很重要。它相当于把所在位置后的代码或数据看成label定义的新的数据类型或新的label(冒号形式)。听着有点抽象,实例如下: 一、代码标号(code la
阅读全文