В Pascal написал функцию вывода символа "*" в указаное место на экране (задается координатами x-столбец, y-строка). Ввожу (0,0), попадаю в нужное место, ввожу (24,79) и видно, что символ не там где надо. Почему так? program Project2; uses CRT; Procedure Draw(x,y:integer); var z:integer; begin asm mov ax,y mov bx,80 mul bx mov z,ax add ax,y mov z,ax mov ax,z mov bx,2 mul bx mov z,ax mov ax,0B800h mov es,ax mov di,z mov byte ptr es:[di],'*' end; end; var z,x,y:word; show_ax:boolean; begin ClrScr; Writeln('Please enter the number of column'); Readln(x); Writeln('Please enter the number of row'); Readln(y); ClrSCr; Draw(x,y); readln; end.
опечатка? где-то должен быть x, не правда ли?) И не перепутались ли координаты: x = 24, y = 79 или наоборот?
А если так попробовать: Код (Text): xor dx,dx mov ax,y mov bx,80 mul bx add ax,x mov di,ax shl di,1 mov ax,0B800h mov es,ax mov byte ptr es:[di],'*'