⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pages.asm

📁 汇编语言 参考书 包含作业与答案 从入门到精通 通俗易懂
💻 ASM
字号:
; This example demonstrates
; the use of pages (double-buffering).
; This program uses first 4 pages of
; video memory by setting some data
; on them, and waits for any key,
; pressing any key will show all
; pages one after another.

#make_COM#

ORG 100h

; set video mode:
; Text mode 40x25, 16 colors, 8 pages
MOV     AH, 0
MOV     AL, 0
INT     10h

; ======== print chars on different pages:

MOV AL, '0' ; char to print.
MOV BH, 0 ; page number.

do_print:

MOV BL, 01001111b ; attributes.
MOV CX, 1018   ; number of chars to write.
MOV AH, 09h ; write char function.
INT 10h

INC AL  ; next char.
INC BH  ; next page.

CMP AL, '4'
JB  do_print


; ===== modify pages by writing directly
;       to video memory:

PUSH    DS

MOV AX, 0B800h
MOV DS, AX

; First byte is a color attribute
; (0F2h = white background, green char),
; second byte is an ASCII code
; (41h = 'A', 42h = 'B', 43h = 'C'...)

MOV DI, 0           ; page 0.
MOV w.[DI], 0F241h

ADD DI, 4096        ; page 1.
MOV w.[DI], 0F242h

ADD DI, 4096        ; page 2.
MOV w.[DI], 0F243h

ADD DI, 4096        ; page 3.
MOV w.[DI], 0F244h

POP DS

; ======= show pages one after another:

MOV  AL, 0   ; page number

show_next_page:

MOV  AH, 05h ; change page function.
INT  10h

PUSH AX
; wait for any key:
XOR  AX, AX
INT  16h
POP  AX

INC  AL

CMP  AL, 4
JB   show_next_page




RET ; return to OS.

;==============================

END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -