用fasm在装配体中画一个三角形
Draw a triangle in assembly with fasm
我正在尝试使用 fasm 在装配体中绘制三角形,但我做不到。
我有以下代码来绘制一个矩形,我认为我应该只减少循环 "ciclopinta" 内的 [comp] 值,但这不起作用(或者我做错了)。
org 100h
mov ah,4fh
mov al,02h
mov bx,13h
int 10h
mov [alt],50
mov [comp], 100
mov dx, 100
mov cx,100
ciclopinta:
ciclo1:
mov ah,0ch
mov al,23h
mov bh, 0
int 10h
dec cx
dec byte[comp]
jnz ciclo1
mov cx, 100
mov [comp],100
dec dx
dec byte [alt]
jnz ciclopinta
mov ah, 07h
int 21h
mov ah,4ch
int 21h
comp rb 1
alt rb 1
mov ah,4fh
mov al,02h
mov bx,13h
int 10h
为什么要使用 VESA 功能来设置传统视频模式?通常这不应该工作。最好使用以下内容:
mov ax, 0013h ;320x200 256-colors
int 10h
接近程序末尾时,您使用 BIOS 功能 07h 来滚动窗口向上,但您没有设置所有参数以使其工作。最好删除这些行 mov ah, 07h
int 21h
您减少 comp 变量的想法很好。我建议你写:
dec dx
mov [comp], dl ;It's a byte-sized variable
我正在尝试使用 fasm 在装配体中绘制三角形,但我做不到。 我有以下代码来绘制一个矩形,我认为我应该只减少循环 "ciclopinta" 内的 [comp] 值,但这不起作用(或者我做错了)。
org 100h
mov ah,4fh
mov al,02h
mov bx,13h
int 10h
mov [alt],50
mov [comp], 100
mov dx, 100
mov cx,100
ciclopinta:
ciclo1:
mov ah,0ch
mov al,23h
mov bh, 0
int 10h
dec cx
dec byte[comp]
jnz ciclo1
mov cx, 100
mov [comp],100
dec dx
dec byte [alt]
jnz ciclopinta
mov ah, 07h
int 21h
mov ah,4ch
int 21h
comp rb 1
alt rb 1
mov ah,4fh mov al,02h mov bx,13h int 10h
为什么要使用 VESA 功能来设置传统视频模式?通常这不应该工作。最好使用以下内容:
mov ax, 0013h ;320x200 256-colors
int 10h
接近程序末尾时,您使用 BIOS 功能 07h 来滚动窗口向上,但您没有设置所有参数以使其工作。最好删除这些行 mov ah, 07h
int 21h
您减少 comp 变量的想法很好。我建议你写:
dec dx
mov [comp], dl ;It's a byte-sized variable