第十三章 int指令

检测点13.1

(1)在上面内容中,我们用7cH中断例程实现loop功能,则上面的7cH中断例程所能进行的最大转移位移是多少?

解:中断例程中使用的bx寄存器存储位移量,可知:16位补码可以表达的数值范围为[-32768~32767],故最大位移量为32768。

(2)用7ch中断例程完成jmp near ptr s指令功能,用bx向中断例程传送转移位移。

解:这个程序核心代码已经在教材 问题:7ch中断例程完成loop指令的功能 的实现代码中基本给出了。loop相对比jmp指令,只是多出了对于cx寄存器的dec操作。

例程实现如下:

;-------
;例程:7cH
;功能:实现jmp near ptr s指令的功能
;入口参数:bx,存放位移偏移量
;返回值:无
;-------
lj: push bp
    mov bp,sp
    add [bp+2],bx ;ip寄存器的值加上bx寄存器中的jmp位移量
    pop bp
    iret
ljend: nop

历程装载与中断向量表注册的代码就不给出了,上篇有具体代码。

检测点13.2

判断下面说法的正误:

(1)我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初始化程序。

解:错误。0FFFF:0处的指令是只读的,无法修改。(真的要修改,也无法通过编程的方式修改吧,要改也是改动CPU吧)

(2)int 19h中断例程,可以由DOS提供。

解:错误。是BIOS提供的在主板ROM中不可修改的例程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值