codice:
File *.cpp
#include <iostream.h>
#include <stdlib.h>
extern "C" {
void far scambia(char riga1,char riga2,char colore);
}
int main()
{
char col = 0x8b;
randomize ();
do
{
char carattere;
asm{
mov ah,7
int 21h
mov carattere,al
}
if (carattere != 27)
{
char riga1, riga2;
riga1 = random(25);
riga2 = random (25);
while (riga1 == riga2)
riga2 = random (25);
scambia (riga1, riga2,col);
asm{
rol col,1
}
}
else
break;
}
while (1492);
return 0;
}
codice:
File *.asm
.model tiny
.stack 50
.code
public _scambia
_scambia proc far
push bp
mov bp,sp
push ax
push bx
push cx
push es
push si
push di
mov ax,0b800h
mov es,ax
mov al,[bp+6]
mov ah,0
push ax
call riga
pop cx
mov si,ax
mov al,[bp+8]
mov ah,0
push ax
call riga
pop cx
mov di,ax
mov ah,[bp+10]
mov bh,ah
mov cx,80
cicloscambia:
mov bl,es:[si]
mov al,es:[di]
mov es:[si],ax
mov es:[di],bx
add si,2
add di,2
loop cicloscambia
pop di
pop si
pop es
pop cx
pop bx
pop ax
pop bp
retf
endp
riga proc near
push bp
mov bp,sp
push bx
mov ax,[bp+4]
mov bl,160
mul bl
pop bx
pop bp
ret
endp
end
Ricorda di compilare con tcc in tc\bin\