系统功效调用Windows操作系统原理实验

系统功效调用Windows操作系统原理实验

  r.h.bh=0;

代码达成

“`

data segment

menu  db 0ah,0dh,’ Input number to chose your function’

db 0ah,0dh,’       1.Follow Typing’

db 0ah,0dh,’       2.Cover Typing’

; db 0ah,0dh,’       3.Ranking’

db 0ah,0dh,’       3.Exit’

db 0ah,0dh,’Please input your select:$’

mess1 db 0ah,0dh,’ This is the Follow Typing page.’

db 0ah,0dh,’     Please input accordance with those word!$’

mess2 db 0ah,0dh,’ This is the Cover Typing page.’

db 0ah,0dh,’     Please input accordance with those word!’

db 0ah,0dh,’ (Yellow is right, Red is wrong!)$’

mess3 db 0ah,0dh,’This is third select$’

mess4 db 0ah,0dh,’ Thank you for your use!$’

mess5 db 0ah,0dh,’Your right number is:$’

endline db 0ah,0dh,’$’

mess  db 255,?,255 dup(?)

text  db ‘New strides have been taken in strengthening national defense
and army building.$’

right db ‘0$’

sum  db ‘/80$’

num  db 0

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

let0:

mov ax,0

mov dx,offset menu ;展现菜单

mov ah,9

int 21h

mov ah,1 ;输入选用

int 21h

cmp al,’1′ ;输入为1,跳转到照打界面

jz prog1

cmp al,’2′ ;输入为2,跳转到覆盖打界面

jz prog2

cmp al,’3′ ;输入为3,跳转到排行界面

jz prog3

jmp prog4 ;输入不为1或2或3,退出程序

prog1:

jmp real_prog1

prog2:

jmp real_prog2

prog3:

jmp real_prog3

prog4:

jmp real_prog4

real_prog1: ;照打界面

mov ax,0003h ;清屏

int 10h

mov dx,offset mess1 ;突显提醒新闻

mov ah,9

int 21h

mov dx,offset endline ;换行

int 21h

mov dx,offset endline ;换行

int 21h

mov dx,offset text ;突显作品

mov ah,9

int 21h

mov dx,offset endline ;换行

int 21h

mov dx,offset mess ;输入串

mov ah,10

int 21h

;输入完成,发轫开始展览巡回比较

mov ax,0

mov di,0 ;存款和储蓄正确个数

mov cl,mess+1 ;输入的字母个数,即循环的次数

mov bx,2 ;第2个字符的单元地点

let1:

mov dl,text[bx-2]

cmp mess[bx],dl ;判断是不是输入正确

jz let2 ;输入正确 跳到let2

jmp out1 ;跳到国有出口 out1

let2: ;正确数+1

add ax,1

add di,1

out1:

dec cl ;循环次数-1

inc bx

cmp cl,0

jnz let1

jz out2

out2: ;检查甘休,输出结果

mov dx,offset mess5

mov ah,9

int 21h

;输出正确个数

mov ax,di

mov bl,10

div bl

add ah,’0′

mov right,ah

add al,’0′

mov dl,al

mov ah,2

int 21h

mov dl,right

mov ah,2

int 21h

mov right,0 ;重置right为0

mov di,0

mov dx,offset sum

mov ah,9

int 21h

jmp let0 ;重返选取菜单

real_prog2: ;覆盖打界面

mov dx,offset mess2

mov ah,9

int 21h

mov ax,0003h ;清屏

int 10h

;置展现光标

mov ah,2

mov dh,4

mov dl,0

mov bh,0

int 10h

;显示串

mov dx,offset mess2

mov ah,9

int 21h

mov dx,offset endline ;换行

int 21h

mov dx,offset endline ;换行

int 21h

mov dx,offset text

mov ah,9

int 21h

;置输入光标

mov ah,2

mov dh,9

mov dl,0

int 10h

mov si,80 ;循环次数

mov bx,0 ;第一个字符的单元地方

mov di,0 ;正确个数

mov num,0 ;显示列的职位

prog2_let1:

;输入字符

mov ah,1

int 21h

mov dl,text[bx]

cmp al,0DH ;判断是还是不是输入回车

jz prog2_out2

cmp al,dl ;判断是不是输入正确

jz prog2_let2 ;输入正确 跳到let2

cmp al,dl

jnz prog2_let3 ;输入错误,跳到let3

jmp prog2_out1 ;跳到国有出口out1

prog2_let2:

add di,1 ;正确数+1

;输入正确,改变为水晶绿

mov ah,06h

mov al,0

mov bh,0eh

mov ch,8

mov cl,num

mov dh,9

mov dl,num

int 10h

;置展现光标

mov ah,2

mov dh,9

mov dl,num

mov bh,0

int 10h

mov dl,text[bx]

mov ah,2

int 21h

jmp prog2_out1 ;跳到集体出口out1

prog2_let3:

;输入错误,响铃

mov ah,2

mov dl,7

int 21h

;输入错误,改变为革命

mov ah,06h

mov al,0

mov bh,04h

mov ch,8

mov cl,num

mov dh,9

mov dl,num

int 10h

;置展现光标

mov ah,2

mov dh,9

mov dl,num

mov bh,0

int 10h

mov dl,text[bx]

mov ah,2

int 21h

jmp prog2_out1 ;跳到国有出口out1

prog2_out1:

dec si ;循环次数-1

inc bx

inc num

cmp si,0

jnz jump_prog2_let1 ;si≠0,继续循环

jz prog2_out2

jump_prog2_let1:

jmp prog2_let1

prog2_out2: ;循环甘休,输出结果

mov dx,offset mess5

mov ah,9

int 21h

;输出正确个数

mov ax,di

mov bl,10

div bl

add ah,’0′

mov right,ah

;add al,74

add al,’0′

mov dl,al

mov ah,2

int 21h

mov dl,right

mov ah,2

int 21h

mov right,0 ;重置正确个数为0

mov di,0

mov dx,offset sum

mov ah,9

int 21h

jmp let0

real_prog3: ;排行界面

mov dx,offset mess3

mov ah,9

int 21h

jmp let0 ;重回选用菜单

real_prog4: ;退出

mov dx,offset mess4

mov ah,9

int 21h

mov ah,4ch

int 21h

code ends

end start

“`

 

(5)输出格式要美丽,要有适度的升迁。

┓ 191

内容:

1.显示屏现身打字练习菜单(格式自定,字体、字号、颜色)

2.菜单项目为4项:照打,覆盖打,排名,退出

            for(j=lc;j<=rc;j++){

     int 21h

r.h.bh=0;

程序框图:

图片 1

程序框图

96页

start:

在钦点地点写参数:

目的:

编写制定英文打字练习软件,综合复习字符输入和展现,置光标、开窗口、颜色设置等显示屏功能;明白分支程序中字符相比及总计的顺序设计,循环及排序程序设计艺术;参加中断调用的计时成效。通过上述综合性磨练,进一步深化对汇编语言的明亮和增进程序设计技术。

          Savewin(5,5,12,40);

     mov cx,0000h

制表符   ASCII码

 mov ax,01A00h ; Read display code’s function

   call fac

  r.h.ah=9;

gotoxy(i, rc); wch(VERTLINE, 7);

     push dx

┛ 217

          void clearwin( int lr,int lc, int rr,int rc);

 main endp

void locate(int x, int y)

存在0040:004A处。固然用户可以从来改动这一个数值,但诸如此类做并不聪明,因为BIOS不

   mov dl,0ah

r.h.ch=0; /*左上角坐标*/

mov cx , 2

stack ends

int86(0x10,&r,&r);

int86(VIDEO,&regs,&regs);

   mov ah,0

② 、实验内容

db (8 – 6) dup (EGA OR UNKNOWN_MONITOR)

(2)运维结果(截图):

void writech(int x , int y, char ch ,int attr)

mov bl,al ; Save it in BL

   call output

  r.h.dh=24; /*右下角坐标*/

B800h                     32K                     8

     inc cl

━ 196

jmp test_vesa

(1)输入数据在主程序中完毕;

显示屏画框能够用制表符来画。其主要措施是连连调用writech函数,在钦定区域周围展现制表符,从而勾勒出2个窗口的大约。

in al,dx ; Read it back

     jmp l3

  locate(x ,y);

户正等待的间隔时间。

   mov ah,02h

}

              regs.x.cx=1;

   mov ah,02h

{ union REGS r;

TRIDENT_8800BR equ 001h SHL 10

     mov ah,02h

void cls(void)

          {

贰 、编制程序体会

  r.h.ah=2; /*子功用号*/

db MCGA OR EGA_MONITOR

     div bx

r.x.cx=1;

GGA_detect endp

   mov ah,4ch

{ union REGS r;

HGA。那要动用MDA和HGA之间的区别:在MDA中,垂直同步位从不改变,而在HGA

(2)计算阶乘的作用用子程序达成,子程序的名字为:fac;

{ union REGS r;

            for(i=0;i<50;i++)

     mov dx,0000h

  r.h.dh=x; /*定位点坐标*/

found 8800BR:

   mov ah,09h

r.h.dl=y;

mov al,bh ; Put secondary type in AL

   mov ah,09h

┗ 192

CIRRUS_610_620 equ 002h SHL 10

 图片 2

壹 、了解操作系统的系统功效调用。

    HEADLAND                 equ 006h SHL 6

     mov cl,al

一 、在显示器的钦赐区域内呈现字符串。(必做题)

mov cx , 4

     ret

② 、掌握用C语言达成系统功用调用的主意和步骤。

mov ax , 0C000h

   mov dh,al

}

100页

 

② 、在显示器的制订区域内画框,在框内显示字符串。(进步题)

     
某个显得适配卡每行能显得40或八十多个字符。基本的录制突显格式是80*25每屏

   mov ah,01h

┃ 179

or word ptr [bx] ,SVGA OR CIRRUS

 

清屏子程序:

xor ah,ah ; Clear byte

   int 21h

③ 、驾驭使用10H号效率调用(BIOS的突显I/O功用调用)来促成对荧屏的操作与操纵。

    ···· XXXX       前景(见表5.5)

(1)程序清单:

  int86(0x10,&r,&r); /*系统机能调用*/

03B8h。

(4)各子程序通过寄存器传递参数;

  r.h.ah=6; /*子作用号*/

 

   lea dx,s2

int86(0x10,&r,&r);

·····111             稻草黄前景(逆向)

 dw 30 dup(?)

  r.h.al=0;   

   
以上有关荧屏中断的点拨在向显示屏内部存款和储蓄器书写内容和从显示屏内部存款和储蓄器阅读内容时都以有用

   mov bx,ax

 }

mov ah , al

   mov dl,0dh

  r.h.bh=7; /*7意味铅白*/

从不改变;用户只是看到有几分钟全数的东西都维持静态,然后就重回下1个活动。不过

 s2 db ‘its factorial=$’

三 、在荧屏上内定区域内画框并以动画格局显得字符串。(选做题)

cmp al,7 , Current mode is mono?

   int 21h

┏ 218

cmp ax , MCGA

   output endp

  r.h.dl=79;

xlat

     dec cl

壹 、实验目标

not_cirrus_610:

     ret

定位子程序:

是什么颜色。用于各类象素的位数决定于展现适配卡类型以及正在利用的图片格局。例

 assume cs:code,ds:data,ss:stack

  r.h.cl=0;

的多个字节计划在显示器呈现的种种字符地点上:三个字节拥有该字符,另1个则怀有其属

   sub al,30h

  r.h.al=ch;

Out dx,al

① 、编写程序

r.h.bl=attr

          #inClude<dOS.h>

data segment

              regS.h.ah=0x0e;

code segment

81页

   fac endp

BIOS级的服务,来成功一定的天职。本章描述控制摄像显示屏和打字与印刷机的DOS和BIOS

   mov ds,ax

union REGS regs;

stack segment stack

    列表5.8

   int 21h

            }

   mov al,dh

                  int n;

   mov dx,0

          /*    Wait 5 seconds and then scroll the screen again.

 s1 db ‘please input an integer between 0 to 8:$’

          Cls();

   mov ax,data

void border(lr,lc,rr,rc)

 main proc far

jmp short test_vesa

(3)以十进制情势出口结果的效益用子程序完成,子程序的名字为:output;

 

   int 21h

jne not_cirrus_bios

     loop l2

 

l2:  pop dx

    5.3.2运用两个突显页

     jbe l2

CIRRUS_BIOS_Sig db “CL”

要求:

0Fh         图形        单色      640* 350                        
X                     X

实际感觉堆栈段不用编写,因为事先不写也行,起始已经写好了,后来清楚要有提示语句,又加输出字符串时就出错了,在压栈的时候现身了死循环,是用dx输出字符串的时候出了难题,最后是重复把dx赋0才消除,本次更是驾驭了库房的利用,未来会用的尤其的随手和高频。

regs.h.dl=rc;

end start

MDA               文本

data ends

/* Function:setpage()*/

code ends

   
范围。依据一些用来分析BIOS和DOS成效选用的粗略的窗口呈现效果,能够检查荧屏

     cmp ax,0

or word ptr [bx] ,CIRRUS_VSEVEN

班级:  计算机14-1  姓名:  许恺    学号:  2014011329日期: 2016.4.29          

VGA               单色

l3:  mov bx,000ah

mov al,bl ; Get old value

   int 21h

ja not_headland

   mov ax,bx

not_HGCPlus:

   output proc near

cmp al , 010h

     loop l1

cmp ch , 0CAh ; 610/ 620?

     add dx,0030h

0101         5              品红色

   lea dx,s1

          /* screen.c

1.从键盘输入七个不抢先8的个位数,总计该数的阶乘,并以十进制制式输出。

   
要提供稳定的图像,荧屏就要以每秒伍十八次的快慢更新(即电子束对整个荧屏进行一

   fac proc near

    ·XXX····       背景(见表5.5)

   int 21h

     
注意表5.4中背景颜色只同意四位,前景颜色则为4人。原因是正式的录制呈现线路

l1:  mul cx

inc dx

   
已经有了数见不鲜类别的显得监视器,并且直接都有更加多的项目在持续地投入使用。本章

mov ax,SecondarySystem , Get current mode

    下列显示屏类型也能鉴定识别:

          }

and word ptr [bX] , NOT ADAPTER_SYSTEM_MASK

SVGA_detect endp

{

if(i==lr||i==rr) {

    ADAPTER_SYSTEM_ MASK equ 007h

in al,dx ; Read unlock password

          Listing 5.8 of DOS Programmer’S Reference*/

regS.h.dl=C;

jae vid_exit

异彩纷呈文本格局位的含义。

      IBM借助标准BIOS和DOS服务,认可并匡助上述专业(除HGA外)。 MDA、CGA

void gotoxy(r,c)

and ah,080h ; Isolate VSYNC

                printf(“This is the Second Screen of the Demo       “);

push ax ; Save registers

#define VIDEO 0x10

not_ati_bios:

jne not_cirrus_chip

1·······         闪烁字符

/* PrototypeS*/

 

Hercules_detect proc

列表5.1

    EGA                   equ 003h

的章节中开始展览描述。但在那本书中,将对KoleosS-232端口单独介绍,因为它们持有无比

Call CGA_detect

0040h:0065h地方上的值,0DFh的字节使闪烁位变明晰,并将结果输出到端口03D8h

          upwin()       将窗口往上滚动

mov Si , Offset GENOA_BIOS_Sig

函数,能够做到下列工作:

#include<dos.h>

0·······         寻常字符

    PS/2兼容、彩色的

        }

                regs.h.bh=0;

普及性实际上使HGA在PC连串上成为高分辨率单色图形的正式,但要利用它的图样功

and word ptr [bX] ,NOT ADAPTER_SYSTEM_MASK

          mov es,ax

cmp ax,MDA ; Is secondary system MDA?

push bx , Save pointer

mov bx,offset PrimarySystem

mov bl,al ; Save it

                        含义

        char att;

or word ptp [ bx ] , CIRRUS_510_520

jne_not_everex_bios

if(i==rr) {

je vid_exit

regS.h.cl=0;

这个作用是何等发挥功能的。录像效果象本书介绍的其它核心相同,它们也是在DOS和

0010         2            绿色

是大概能够翻阅的)时才是实惠的,所以本书的主心骨放在80列格式上,它能与专业的

mov bl,010h ; Attempt tO find EGA

82页

   位数=log(颜色数)/log(2)

频方式都使得就须求变更Int 1Dh向量所提醒的录制表。因为摄像表平时驻留在ROM

所显示的字符数。

not_cti82c452 :

用直白源于高档语言的服务;但在广大情状下,则必须使用较低级的劳务,如DOS或

     
BIOS跟踪当前呈现方式并将艺术号保存在内部存款和储蓄器地址0400:00第49中学。每行的列数保

je ati_2

105页

    ; video_id.asm

0001         1              蓝色

        int lr,lc,rr,rc;

HGA,要完结那一点能够观测气象端口的一点位。

mov si , Offset CIRRUS_BIOS_Sig

 本节罗列了辨识下述展现适配卡类型的一多级进度:

and ax , MONITOR_MASK

xor bx,bx

and word ptr [bx] , NOT ADAPTER_SYSTEM_MASK

          void gotoxy( int r, int c);

    要使用Int 29h,可就要突显的字符放进AL。寄存器,然后引入中断:

jmp  test_vesa

in al,dx ; Get new value

and al , 00Fh

           void pgprint(str)

              #include<stdio.h>

and al , 00Fh

ret ; Return

    通过探测CHighlanderTC。能够识别CGA或MDA适配卡。

91页

int 10h

      分辨率一栏中的数目代表文本方式的行和列,代表图形方式的象素。

mov ah,al , Save it

                regs.h.Cl=0;

    位数=log(16)/log(2)=1.20412/0.301003=4位

mov al,066h ; Write new value

; Attempt to detect CGA card

jmp test_vesa

相同的话,那么他的显示屏就会是徒有其表的。

    GENOA                   equ 005h SHL 6

安装背景域的要职为1,从而提供使各种字符闪烁开和关的作用。可是,通过修饰输送给

or word ptr [bx] ,SVGA OR AHEAD

11h         图形        2            640*480           
                       X           X

mov dx,003CDh

·000····           黑背景(正常)

; Routine tO detect SVGA cards

void setpage(n,clrflg)

          ;For use with Microsoft C/C++

out dx,al

用芯片,它能进行6845所提供的保有基本功用,并能显然地提升6845的作用。录制控制

          putwin(5,5,12,40);

Call MDA_detect ; and MDA

09h         图形        16          
320*200                                                         X

cmp al , 1

call GRTC_deteCt

/*Function:pgprint()*/

 in al , dx

inc dx

    整个显示器。

88页

jmp Short not_Cirrus_Chip

    CGA                   equ 001h

or bh,bh ; Secondary system detected?

        /*  Finally,clear the screen again and then end the

性。字符就在与它同样地址的不行字节里,属性就在另一字节里。字符属性向彰显适配卡

mov es ,ax

; It’s an ATI BIOS- -now identify the chipset

      ·虚拟图形阵列(VGA)

mov di,00040h ; “31” at C000:0040

          #define TRUE       !FalSE

                char ch,attr;

cmp ah,0A5h ; Right global ID?

何地方。该RAM是荧屏图象的三个录像缓冲区,并且也富有1024突显字符那么大的模

B000h               变化                变化

regs.h.dl=80;

          /*   Scroll the inside of the window up one line every 

regs.h.al=n;

gotoxy(i,j);

mov si,offset SecondarySystem

xlat

mov bh,al ; Save it

cmp al , 000h

mov di,6

{

          {

别的DOS服务能用来显示屏控制;唯有多少个DOS服务能用来消息的荧屏彰显。

inc dx ; Read global ID

      列表5.6

jmp test_vesa

mov al,00Fh ; Select (alleged) cursor low

and word ptr [ bx ] ,NOT ADAPTER_SYSTEM_MASK

      HGA                                     MCGA

                int86(VIDEO,&regs,&regs);

1001           9            淡蓝色

B800h               变化                变化

                                     显示卡

              Listing 5.5 of DOS Programmer’s Reference*/

cmp bx,’7′

生。大概要到今后(就算有也很少)才会形成贰个远近驰名的正儿八经。

 

      int 29h

/* Function: Savewin()*/

jne found_Hercules

jne not_ahead_bios

ati_1 :

jne not_cti_bios

16种颜色,那么它的等式便是:

cmp al , 055h

    ;Procedure for identifying the video system(s)

0·······         平常字符

式与显示适配卡所发出的字符绝对应。字符是从保存在适配卡中的ROM字符发生器内

mov ax,PrimarySystem ; Found CGA; primary or secondary?

   
当用户期望得到给C翼虎T的最快的、可能的输出并且想幸免选拔BIOS以有限帮忙与一般

}

jmp test_vesa

gotoxy(lr, rc); wch(UPPERRIGHT, 7);

and word ptr [bx] , NOT ADAPTER_SYSTEM_MASK

detect_SVGA: call SVGA_detect

    SVGA                  equ 006h

in  al , dx

{

 and word ptp [ bx] ,NOT ADAPTER_SYSTEM_MASK

je CGA_primary

彩变味”(Chromablizzard)。要在这类系统中预防这几个题材应运而生,应该只在HKoleosI或V奥迪Q5I期

AHEAD_BIOS_Sig db “AHEAD”

; Wasn’t AHEAD. Test for ATI

        /* Testpage.C

            }

    #include<stdio.h>

regs.h.al=0;

  
 页码(借使用户编写了上下一心的窗口函数来直接存取显示器内存,那么就不会受此限制)。而

图形形式中,每一个显示屏象素都由一多重的内部存款和储蓄器位所分明。各种位提示象素打开或关闭以及

12h         图形        16          
640*480                                               X

录制适配卡的章程体现寄存器的值,就足以获得背景亮度值的完好范围(以失去闪烁能力

一起工作时,就会开头对这一个存取级别感到满足。

                sleep(2);

and ax ,ADAPTER_SYSTEM MASK

push dx

    列表5.3

db VGA OR vga_MONO

pop bx ; Restore bx

jne not_genoa_bios

    MDA_MONITOR            equ 001h SHL 3

gotoxy(rr,lc); wch(LOWERLEFT, 7);

pop dx

inc dx

push ds ;save caller’s DS

                  int86(vIDEO,&Pegs,&regS);

db MCGA OR VGA_MONO

and ax , ADAPTER_SYSTEM_MASK

用于体现的内部存款和储蓄器数目而发生变更。

    增强型昂科威GB监视器能提供彩色文本和图纸,并且输出结果比平时的本田CR-VGB监视器产

jmp short CGA_exit

     
表5.5点数了各类颜色只怕的职位。不过,注意,因为一般的前景是由3一个人决定的,

97页

not cti82c451:

 

的未公开的效益雷同)。

in al , dx

out dx,al

      未来让大家看看两类展现格局:文本和图片。

cmp al, 1 ; Unlocked?

cmp ax , UNKNOWN_ADAPTER

    /* Prototypes */

VSYNC :

          clearwin()   清除窗口

mov dx,046E8h ; Turn setup back off

xor al,al

90页

regS.h.ah=0x06;

mov ax , PrimarySystem

      ·多彩色图形阵列(MCGA)

        attribute.*/

表5.2列举的格局0Eh的分辨率为640*200,即宽6叁15个象素,深200个扫描行(象素)。

/*Function:cls()*/

mov al,020h ; Get enable value

or PrimarySystem , MDA OR MDA_MONITOR

db MCGA OR VGA_COLOR

数移向DOS服务,会博得对出口操作的更大控制,并维持对系统设计的早晚的非敏感性。

for(i=lr;i<=rr;i++) {

                regs.h.al=0;

regs.h.ah=0x02;

内部存款和储蓄器比“普通的”RAM要昂贵,所以任何的显得适配卡则只怕忽略了这几个细节。假如你的

jmp test_vesa

89页

      CGA卡

out dx,ax

        ·分明硬件光标的高低和地址

功了,再持续形成下列两项任务:识别EGA或VGA BIOS没有放在心上的CGA或MDA卡,

and al , 070h

not_cirrus_chip:

pop si

jne not_cti_bios

仅在那么些内部存款和储蓄器地点上改变了数量,而且实施了不易安装录像情势所不可不的别样操作。

mov di,offset scratch_pad

    and al,0DFh         ;clear blink control bit

or SecondarySystem , CGA OR CGA_MONITOR

个中的哪一类颜色,那么需求八个位。每种象素所需的位数可由下列等式表示:

jne svga_exit

行,然后回到到荧屏已显得的一致内容上去。

jmp Short test_vesa

pop cx

mov di,00025h ; Signature is at C000:0025

mov dx,es :00463h

   
所接纳的监视器系统的品种之一。能够拉长显示屏页控制,但绝不全体的函数都允许它的存

    么那正是一个差不离VGA适配卡。

以及有256种颜色的花花绿绿调色板等的图形。

    借助DOs 和
BIOS的荧屏存取能够编写复杂的且使得的程序。实现复杂进度的顺序

    ;SVGA BIOS types

      EGA和VGA卡的缓冲区大小会转变,是因为它们能在64K到1M的内部存款和储蓄器中占据任

      pop es              ; restore saved segment register

db EGA OR EGA_MONITOR

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图