Код- такой он и должен быть - Assembler

Узнай цену своей работы

Формулировка задачи:

Есть программа, проверьте пожалуста правильность написания кода. И если не трудно как бы каждую строчку разобрать //комментарий Премного благодарен
program gg; {$G+}
uses crt;
var strlen:byte;
x,y:byte;{x [0..79], y[0..24]}
const
slovo:string='Hello pipi';
right:byte=80;
botten:byte=25;
 
curl=$4B;
curT=$48;
curR=$4D;
curB=$50;
procedure writeslovo;assembler;
asm
{ochistka erkana}
cld
Xor ax,ax
xor di,di
Mov cx,80*25
rep stosw
{konec}
XOR AH,AH
MOV Al,Y
SHL AX,5
MOV DI,AX
SHL AX,2
ADD DI,AX
{shas pro x}
XOR AH,AH
MOV AL,X
SHL AX,1
ADD Di,AX
{konec}
Lea Si,Slovo
MOv CL,[SI]
XOR Ch,ch
MOV AH,$0C
@MeT: inc SI
Mov Al,[SI]
MOV es:[di],Ax
ADD DI,2
loop @MeT
 
end;
begin
clrscr;
 
asm
MOV AX,0b800h
MOV ES,AX
XOR al,al
MOV x,al
MOV y,al
lea SI,SLOVO
MOV al,[si]
MOV strlen,al
@L: Call writeslovo
Xor ah,ah
int 16h
CMP ah,1
Je @Exit
{ }
CMP AH,Curl
Jne ФЛОКИРОВАНИЕ.EMGOLDEX,Talk Fusion,LBM,(маркера*)
CMP x,0
JNA @L
DEC X
 
JMP @L
{ }
ФЛОКИРОВАНИЕ.EMGOLDEX,Talk Fusion,LBM,(маркера*):
CMP AH,CurT
JNE @notTop
 
@notTop:
CMP AH,CurR
JNE @notRight
MOV al,right
SUB al,strlen
CMP x,al
JNB @L
inc x
 
JMP @L
@notRight: CMP AH,curB
JNE @L
JMP @L
@Exit:
end;
end.

Решение задачи: «Код- такой он и должен быть»

textual
Листинг программы
Jne ФЛОКИРОВАНИЕ.EMGOLDEX,Talk Fusion,LBM,(маркера*)

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы