鱼C论坛

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

实验15

[复制链接]
发表于 2012-9-3 21:13:36 | 显示全部楼层 |阅读模式

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

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

x
  • assume cs:code
  • stack segment
  •     db 128 dup(0)
  • stack ends
  • code segment
  • start:      mov ax,stack            ;   init stack
  •             mov ss,ax
  •             mov sp,128
  •             push cs                 ;   mov NI9 to 0:204
  •             pop ds
  •             mov si,offset ni9
  •             mov ax,0
  •             mov es,ax
  •             mov di,204H
  •             mov cx,offset ni9e - offset ni9
  •             cld
  •             rep movsb
  •             ;   save BIOS origin int9
  •             push es:[9*4]           ;   IP
  •             pop es:[200H]
  •             push es:[9*4+2]         ;   CS
  •             pop es:[202H]
  •             ;   set ni9 as int9
  •             cli
  •             mov word ptr es:[9*4],204H
  •             mov word ptr es:[9*4+2],0
  •             sti
  •             mov ax,4c00H
  •             int 21H
  • ni9:        push ax
  •             push es
  •             push bx
  •             push cx
  •             mov bx,0
  •             mov es,bx
  •             pushf                   ;   call BIOS origin int9
  •             call dword ptr es:[200H]
  •             in al,60H               ;   get keyboard input from port 60H
  •             cmp al,9EH              ;   cmp with "A" UP
  •             jne ni9r
  •             ;   change screen color
  •             mov bx,0b800H
  •             mov es,bx
  •             mov bx,0
  •             mov cx,2000             ;   2000 chars per page
  • lp:         mov byte ptr es:[bx],41H
  •             add bx,2
  •             loop lp
  • ni9r:       pop cx
  •             pop bx
  •             pop es
  •             pop ax
  •             iret
  • ni9e:       nop
  • code ends
  • end start

ni9中是先PUSH AX BX ES AX的 后PUSHF 和CALL时 吧CS IP入栈的  后进先出那应该是先IRET 吧后进的CS IP PUSHF 出栈 为什么 ni9r 中先POP CX 后才IRET 不应该是先IRET  还有IRET中的 CS IP 不是指向CALL 下一行的代码的吗 那不是又要跳到 48行继续执行 不是死循环吗


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-27 23:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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