assembly 组件8086中的Pong项目

falq053o  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(173)

我在pong项目中遇到了一个问题。我试着让球碰到红色的球棒时,它会随机反弹到另一边,但由于某种原因,它无法识别红色。我在int = 10h中使用AH = 0Dh。检查的部分在hitcheck proc中。
这是密码,和我的问题有关.

hitcheck    PROC
;------batt and com check-------
MOV BH, 2H
MOV DX, ballx
MOV CX, bally
SUB CX, 2
MOV AH, 0Dh      
INT 10H

CMP AL, 1
JE hitmovement
CMP AL, 3
JE comhitmovement

MOV BH, 2H
MOV DX, ballx
MOV CX, bally
ADD CX, 2
MOV AH, 0Dh            
INT 10H

CMP AL, 1
JE hitmovement
CMP AL, 3
JE comhitmovement

MOV BH, 2H
MOV DX, ballx
MOV CX, bally
SUB DX, 2
MOV AH, 0Dh      
INT 10H

CMP AL, 1
JE hitmovement
CMP AL, 3
JE comhitmovement

MOV BH, 2H
MOV DX, ballx
MOV CX, bally
ADD DX, 2
MOV AH, 0Dh      
INT 10H

CMP AL, 1
JE hitmovement
CMP AL, 3
JE comhitmovement
dgiusagp

dgiusagp1#

MOV AL, 13H ;changes the num of pixels to 640X480 with 16 colors

这里的评论与视频模式编号不匹配。模式13 h的分辨率为320 x200,256色。
第一页第二页
如果前面代码的目的是绘制沿屏幕高度的垂直线,则需要与200而不是199进行比较。

;------batt and com check-------
MOV BH, 2H
MOV DX, ballx
MOV CX, bally
SUB CX, 2
MOV AH, 0Dh      
INT 10H

在所有的ReadPixel调用中,你都错误地将X坐标放在DX中,而将Y坐标放在CX中。这是相反的。你的 printpixel 宏做的是正确的。
此外,您在第1页打印了 battcom 的像素,但在第2页检查了冲突!
问题:您的视频适配器是否支持模式13 h中的多页?

相关问题