X86汇编语言从实模式到保护模式9.1代码147行如何理解
mov al,0x0b ;RTC寄存器B
or al,0x80 ;阻断NMI
out 0x70,al
mov al,0x12 ;设置寄存器B,禁止周期性中断,开放更
out 0x71,al ;新结束后中断,BCD码,24小时制
请采纳,右侧采纳即可:
这段代码可能是在进行对x86计算机中的时钟控制器(Real-time Clock,RTC)的设置。
在这段代码中,mov指令将值0x0b(十进制11)存入al寄存器。or指令将al寄存器中的值与0x80(十进制128)进行或运算,结果存入al寄存器。out指令将al寄存器中的值发送到端口0x70。
接着,mov指令将值0x12(十进制18)存入al寄存器。out指令将al寄存器中的值发送到端口0x71。
这段代码的作用是设置RTC寄存器B,禁止周期性中断,开放更新结束后中断,BCD码,24小时制,阻断NMI。
明白了,0x70端口最高位为控制Non Maskable Interrupt 中断开关,与0x0b寄存器索引或运算可以一次性阻断 NMI 并指定索引寄存器为0x0b!
不知道你这个问题是否已经解决, 如果还没有解决的话: