当前位置:编程学习 > 汇编语言 >>

汇编填空题

已知SP=0100H,SS=0600H,标志寄存器FR=0204H,存储单元(0024H)=60H,(0025H)=00H,(0026H)=00H,(0027H)=10H,在段地址为0800H及偏移地址为00A0H开始的单元中,有一条指令INT 09H(该指令长度为2字节)。则执行该指令后,SS=【1】H,SP=【2】H,IP=【3】H,CS=【4】H,FR=【5】H。 怎么算,讲一下。
答案:题设中,已知中断类型码为09h,故执行中断处理程序前,先将标志寄存器的内容入栈,FR中的IF和TF位均设为0;然后将CS和IP入栈,由于这三个寄存器的长度都为字,故此时共有三个字入栈,那么SP - 3 * 2 = 0fah。所以int指令执行时,SP指向0fah,栈基址SS不变,为0600h

IP = 中断类型码 * 4 = 24h
CS = 中断类型码 * 4 + 2 = 26h

由于FR的初始值为0204h,相当于二进制的1000000100,也就是第二位PF和第九位IF的值为1,执行int时,除了将IF的值变化之外,其余值不变,于是变为0000000100。故转换成16进制数为04h

上一个:汇编语言 MOV [SI] [2000H]这条指令错误。 谁能详细解释下,非常感谢。
下一个:关于protues中仿所用的程序,用c语言编的程序和用汇编语言编写的程序,哪个更有更有优势?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,