鱼C论坛

 找回密码
 立即注册
查看: 2452|回复: 0

[汇编作业] 检测点 17.1

[复制链接]
发表于 2019-4-12 17:19:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在int 16h中断例程中,一定有设置 IF = 1 的命令。这种说法对吗?

答:这种说法是错误的,应该不需要因为int 16会把标志寄存器、段地址、偏移地址入栈,当他们出站时标志寄存器会被从新还原所以这里面应该不需要将IF = 1


他的执行顺序是:
int 16h
                push ds
                push bx
                mov bx, 0040h
                mov ds, bx
                cmp ah, 10h
                call 07b9h
                push ds
                push ax
                mov ax, 0040h
                mov ds, ax
                lahf
                test word ptr [0314h], 2400h
                jnz 07d5
                cli
                jmp 07d0h
                sahf
                pop ax
                pop ds
                jmp 07d8
                ret
                jb 09d6
                or ah, ah
                jz 0a18h
                mov bx, [001a]
                cmp bx, [001c]
                jnz 0a35
                call 0bc8
                push bx
                push cx
                push ax
                lahf
                push ax
                mov al, [0017]
                and al, 70
                mov cl, 04
                shr al, cl
                and al, 07
                mov bl, [0097]
                xor bl, al
                and bl, 07
                jz 0c08
                pop ax
                sahf
                pop ax
                pop cx
                pop bx
                ret
                jnz 0a3f
                mov ax, [bx]
                call 0bbbh
                inc bx
                inc bx
                cmp bx, [0082]
                jnz 0bc7
                ret
                mov [001a], bx
                call 0b74
                push bx
                push ax
                lahf
                mov bx, ax
                pop ax
                push bx
                cmp ah, 0e0h
                jnz 0b8f
                cmp ah, 84
                ja 0bb2h
                cmp al, 0f0h
                jnz 0b9f
                cmp al, 0e0h
                jnz 0ba9
                mov bx, ax
                pop ax
                sahf
                mov ax, bx
                pop bx
                clc
                ret
                jb 0a2a
                call 0b4c
                mov word ptr cs:[09b8], 0000
                mov word ptr cs:[09bc], 0000
                ret
                jmp 09ee
                pop bx
                pop ds
                jmp 064c
                push ds
                push ax
                mov ax, 0040
                mov ds, ax
                test word ptr [0314], 2400
                jnz 06aa
                pop ax
                pop ds
                iret
                
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 07:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表