zoukankan      html  css  js  c++  java
  • 第十三章 int指令

    1、int指令:CPU执行int n,相当于引发一个n号中断的中断过程。因此,一般情况下,系统将一些具有一定功能的子程序,以中断处理程序的方式提供给应用程序调用。

    2、int和iret指令配合跟call和ret指令相似。

    3、注意寄存器值的保存和恢复

    4、对int、iret和栈的深入理解:用7ch中断完成loop指令。

    5、  BIOS和DOS中断例程的安装

    判断下面说法的正误

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

    答:这种说法是错误的。因为该内存单元具有‘只读’属性。

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

    答:这种说法是错误的。因为int 19h是在DOS启动之前就被执行的中断例程,这里面涉及到一个先后次序的问题,而此次序不能被打乱。

    6、BIOS中断例程的应用:int 10h中断例程是BIOS提供的中断例程,其中包含了多个和屏幕输出相关的子程序。BIOS和DOS提供的中断例程,都是用ah来传递内部子程序的编号

    7、DOS中断例程的应用:int 21h中断例程是DOS提供的中断例程,其中包含了DOS提供给程序员在编程时调用的子程序。我们之前一直使用的是int 21中断例程的4ch号功能,即程序返回功能,

    即:mov ah,4ch       ;程序返回

        mov al,0          ; 返回值

        int 21h

    8、int 21h中断例程在光标位置显示字符串的功能:

    View Code
     1 assume cs:code
    2
    3 code segment
    4 start:mov ax,cs
    5 mov ds,ax
    6 mov si,0ffset capital
    7 mov ax,0
    8 mov es,ax
    9 mov di,200h
    10 mov cx,offset capitalend - offset capital
    11 cld ;设置传输方向为正
    12 rep movsb

    13
    14 mov ax,0
    15 mov es,ax
    16 mov word ptr es:[7ch*4],200h
    17 mov word ptr es:[7ch*4+2],0
    18
    19 mov ax,4c00h
    20 int 21h
    21
    22 capital:push cx ;中断中要用到cx和si寄存器先保存起来
    23 push si ;避免寄存器冲突
    24

    25 change: mov cl,[si]
    26 mov ch,0
    27 jcxz ok
    28 and byte ptr [si],11011111b
    29 int si
    30 jmp short change
    31
    32 ok:pop si
    33 pop cx
    34 iret
    35
    36 capitalend:nop
    37
    38 code ends
    39 end start
    View Code
     1 ;在屏幕的5行12列显示字符串"I love English"
    2 ;注意:要显示的字符需用"$"作为结束符
    3 assume cs:code

    4
    5 data segment
    6 db "I love English$"
    7 data ends
    8
    9 code segment
    10
    11 start:;设置光标位置
    12 mov ah,2

    13 mov bh,0 ;第0页
    14 mov dh,5 ;第5行
    15 mov dl,12 ;第12列
    16 int 10h

    17
    18 ;在光标位置显示字符
    19 mov ax,data

    20 mov ds,ax
    21 mov dx,0
    22 mov ah,9 ;功能号,表示在光标位置显示字符串
    23 int 21h

    24
    25 mov ax,4c00h
    26 int 21h
    27
    28 code ends
    29 end start



  • 相关阅读:
    POJ 2342.Anniversary party-树形dp
    Codeforces Round #363 (Div. 2) A、B、C
    Codeforces Beta Round #17 D.Notepad 指数循环节
    hdu 5920 Wool 思路
    hdu 5719 Arrange 贪心
    hdu 5718 Oracle 高精度
    hiho #1332 : 简单计算器 栈+递归
    UESTC 1074 秋实大哥搞算数 栈模拟
    cdoj 1329 卿学姐与魔法 优先队列
    cdoj 1324 卿学姐与公主 线段树裸题
  • 原文地址:https://www.cnblogs.com/quantumplan/p/2404718.html
Copyright © 2011-2022 走看看