汇编语言图形显示中遇到的问题

qq_38618879 2017-12-11 01:17:37
;我测试以下代码,但是在dosbox中只显示了一半的图形,这是我所不能理解的,

data segment

hong db 1,2


num equ $-hong
data ends

stack segment

dw 16 dup(?)

stack ends

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

start: mov ax,data
mov ds,ax

mov ax,stack
mov ss,ax
mov sp,32

mov ax,0a000h
mov es,ax

mov ah,00h
mov al,12h
int 10h ;设为640*480的图形模式

mov dx,3ceh
mov al,5
out dx,al
inc dx
mov al,2
out dx,al ;选择写模式2


mov dx,3ceh ;设定位屏蔽寄存器
mov al,8
out dx,al
inc dx
mov al,11111111b
out dx,al



mov cx,480
mov bx,0

loop1: mov ah,0
mov al,bl
mov dl,80
mul dl
mov si,ax
mov byte ptr es:[si],4 ;这里的程序只是为了给第一列设置红色,按理说应该第一列的八个像素值都会变成红色,但是实际显
inc bx ;显示只有第一列的一半显示了红色,我实在是搞不懂为什么
loop loop1


call delay
mov ah,00h
mov al,03h
int 10h

mov ax,4c00h
int 21h


delay proc near

;设置延时
push si
push di
mov si,8000
d1: mov di,3000
d2: dec di
jnz d2
dec si
jnz d1
pop di
pop si
ret

delay endp
code ends

end start
...全文
104 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

27,377

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧