没有单步中断的话就是执行完这条指令然后执行下一条指令对吧。
TF=1的话则是结束当前指令后产生一个中断中断结束后TF还是等于一然后执行下一条指令如此循环……
这么说没错吧
没错的话……那个中断的过程会发生什么?
单步中断有什么用……
8086 单步中断有什么用?
答案:4 悬赏:20 手机版
解决时间 2021-03-05 13:25
- 提问者网友:欲劫无渡
- 2021-03-05 01:42
最佳答案
- 五星知识达人网友:想偏头吻你
- 2021-03-05 02:59
单步中断,它是每执行一条指令中断一次,断点是最常用的技巧,但是你马上可以分析出2者的不同.
全部回答
- 1楼网友:英雄的欲望
- 2021-03-05 04:49
没错的
- 2楼网友:动情书生
- 2021-03-05 04:23
单步中断的优先级是所有中断中最低的
它可用中断允许标志位置“0”来屏蔽。
所以是错误的。
- 3楼网友:一叶十三刺
- 2021-03-05 03:14
1、第一句话:如果本条指令时跳转指令,执行完之后就不一定是紧接着的下一条指令了。有点鸡蛋里挑骨头的感觉,可以不用管了!
2、中断过程会发生什么?
这个要看你想让它发生什么了。一句话,这是程序员可控制的。当产生一号中断,就会进入一号中断服务程序执行。然后返回主程序。一号中断最典型的应用要数DEBUG了吧。每执行一步就把寄存器等内容显示出来。
3、单步中断有啥用?
如2中所述。另外,单步中断好像还可以用在加密上,具体可查资料。
4、附本人程序一断
执行后显示4个Y
initint equ 1h
data segment
addr dw ?,?
data ends
sseg segment stack
dw 512 dup (?)
sseg ends
code segment
assume cs:code,ds:data,ss:sseg
start:
mov ax,data
mov ds,ax
mov ax,sseg
mov ss,ax
mov ax,0
mov es,ax
;保存1h中断的原始地址
mov ax,es:[initint*4]
mov addr,ax
mov ax,es:[initint*4+2]
mov addr[2],ax
;加入新中断服务程序地址
cli
lea ax,isr
mov es:[initint*4],ax
mov ax,seg isr
mov es:[initint*4+2],ax
sti
pushf
mov bp,sp
or word ptr [bp],0100h ;TF置1
popf
mov ax,0
mov bx,0
;恢复原中断地址
exit:
cli
mov ax,addr
mov es:[initint*4],ax
mov ax,addr[2]
mov es:[initint*4+2],ax
sti
mov ah,4ch
int 21h
isr proc far
push ax
push dx
mov ah,2
mov dl,'Y'
int 21h
pop dx
pop ax
iret
isr endp
code ends
end start
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯