微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

中断,IDE环境汇编语法

中断的机制:

在地址0处有中断向量表,表中有多个项,每一项4字节,是中断程序的入口地址(seg:offset)。

 

 

 

 

 

Nop指令和xchg ax,ax的机器码一样

 

封锁前缀指令lock,可放在任何指令前面,效果是封锁总线,使别的控制器无法控制总线,指令执行完后解除封锁,常用于多线程同步,例如InterLocked*系列API

return InterlockedExchangeAdd(Addend, Value) + Value;

00292D38 8B 45 0C             mov         eax,dword ptr [Value]  

00292D3B 8B 4D 08             mov         ecx,dword ptr [Addend]  

00292D3E F0 0F C1 01          lock xadd   dword ptr [ecx],eax  

00292D42 03 45 0C             add         eax,dword ptr [Value]  

 

 

暂停指令HLT,使CPU进入暂停状态,CPU复位或有外部中断时恢复。

 

交权指令ESC,CPU发现是浮点指令时,交给浮点寄存器运行。

 

鞥带指令WAIT,交权后是否等待浮点寄存器的执行结果。

 

 

 

 

 

 

IDE环境中的汇编:

硬指令:产生汇编代码的指令。

伪指令:不产生汇编代码的指令,写给汇编处理程序看的,例如说明数据,定义变量。

标识符可使用4个特殊符号(@$_?)

默认情况下不区分小写

 

编编程序必须在末尾标明入口,如:end START

数据段可以放代码,代码段也可以放数据。

 

代码定式:

if(...){

...

}

else{

...

}

 

Jxx ELSE

...

Jmp ENDIF

ELSE:

...

ENDIF:

 

 

 

 

 

 

 

 

编译:ml /c ToAscii.asm

链接:link16 ToAscii.obj

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐