Мне нужно нарисовать квадрат в сборе x86. Я знаю, как рисовать квадрат, но моя проблема в том, что у меня много переменных, и я не хочу делать процедуру для каждой переменной 2 (x и y). Я добавил пример, где я определяю x и y. Это то, что я пытался сделать:Сборка x86 - проблемы с рисованием квадратного графического режима
proc ChangeColumn4Number4
inc [FourthColumnArray + 3]
mov [Player1Drawx], 85h
mov [Player1Drawy], 27h
jmp DrawPlayer1Disc
endp ChangeColumn4Number4
DrawPlayer1Loop:
mov bh,0h
mov cx,[Player1Drawx]
mov dx,[Player1Drawy]
mov al,[player1disccolor]
mov ah,0ch
int 10h
add [Player1Drawx], 1h
mov ax, dx
add ax, 14h
cmp dx, ax
jl DrawPlayer1Loop
DrawPlayer1Disc:
mov bh, 0h
mov dx, [Player1Drawy]
add [Player1Drawy], 1h
mov ax, dx
add ax, 14h
cmp dx, ax
jl DrawPlayer1Loop
Кто-то с этого сайта направляемой сделать это таким образом, но это не работает. Спасибо за помощь.
В первом цикле то, что именно является точкой перемещения y-координаты на 'ax', добавляя' 14h' и сравнивая ее с исходным значением? Филиал 'jl' никогда не будет принят. –
@WeatherVane Спасибо за ответ. Я думал об этом раньше, и я был уверен, что я не понял его правильно, потому что человек, который сказал мне сделать это, имел 4000 репутации. Что я должен сделать вместо этого, чтобы исправить это? Я весь день ломаю голову, пытаясь это исправить. – KatomPower
Размер квадрата не отображается в коде. Вы должны перебирать координату x до тех пор, пока она не достигнет (startx + dimension). В то же время вы можете построить другой параллельный фронт с другой y-координатой (starty + dimension). Затем повторите упражнение для вертикальных краев. –