汇编中关于直接视频显示中字节级映像操作的问题

来源:百度知道 编辑:UC知道 时间:2024/05/06 14:17:57
《IBM-PC》汇编语言程序设计一书中10.2视频显示存储器一节中有一例题如下:
例10.2 256色、320×200图形方式下画方框的例程BOX 。
;---------------------------
;entry:AL=color(0-256)
; CX=start coiumn(0-319)
; SI=start row(0-199)
; BP=BOX SIZE
;————————————————————————————————

BOX proc
mov BX,0A000h
mov ES,BX
push AX
mov AX,320
mul SI
mov DI,AX
add DI,CX
pop AX
push DI
mov CX,BP
BOX1:
REP STOSB
mov CX,BP
sub CX,2
BOX2:
pop DI
add DI,320
push DI
STOSB
add DI,BP
sub DI,2
STOSB
loop BOX2

pop DI
add DI,320
mov CX,BP
REP STOSB
ret
BOX endp

;—————————————————————————————————

请问调用哪种VGA的读模式或者哪种中断,来把“方框画出来”,请给出具体代码!!!
PS:要完整的程序!!!好的话,再加分!

; 本程序通过编译,运行正确

Code Segment
Assume CS:Code,DS:Code
; -----------------------------------------
; entry:
; AL=color(0-256)
; CX=start coiumn(0-319)
; SI=start row(0-199)
; BP=BOX SIZE
BOX Proc Near
push es
push ax
mov ax,0a000h
mov es,ax
mov ax,320
mul SI
mov di,ax
add di,cx ; 方框左上角地址
pop ax
cld
push di
mov cx,bp
rep stosb ;方框上框线
pop di
mov cx,bp
push cx
dec cx
dec cx
Two_Dot: add di,320
push di
stosb ;左框点
add di,bp
dec di
dec di
stosb ;右框点
pop di
loop Two_Dot
add di,320
pop cx
rep stosb ;方框下框线
pop es
ret
BOX EndP
; -----------------------------------------

Start: mov ax,13h ;设置320x200,256色图形方式
int 10h
mov