Очень срочно нужна помощь в переводе кода с IDEAL режима в MASM. Чтото пыталась переделать сама.. моя попытка второй соурс
И еще просьба, нужен пошаговвые коментариии к каждой строке. Спасибо.
IDEAL CODE
| Код | ideal model small stack 256 dataseg buff db 2 dup(0),'h.',0dh,0ah,'$' excode db 0 welcome db 'Vyvod skankoda.',0dh,0ah,0ah wlcm db 'Vyxod ESC.',0dh,0ah db 'Nazhat' klavishu.',0dh,0ah,'$' codeseg proc keywaiting ;proverka na nazhatije klaviatury push ax mov ah, 1 int 16h pop ax ret endp keywaiting proc getch ;vozvrasciajet znachenije ascii-simvola upravliajuscej ili funkcionalnoj klavishi xor ah,ah int 16h or al,al jnz @@10 xchg ah,al add al,32 jmp short @@20 @@10: xor ah,ah cmp al,32 jb @@20 inc ah @@20: or ah,ah ret endp getch proc hexdigit ;preobrazujet 4-bitovoje znachenije v ascii cifru cmp dl,0ah jb @@10 add dl,37h ret @@10: or dl,'0' ret endp hexdigit start: mov ax,@data mov ds,ax mov es,ax mov ah,09h mov dx,offset welcome int 21h repeat: call keywaiting jz repeat call getch push ax mov dl,al shr dl,4 call hexdigit mov dh,dl mov dl,al and dl,0fh call hexdigit xchg dh,dl mov [word buff],dx mov ah,09h mov dx,offset buff int 21h pop ax cmp al,1bh je exit mov ah,09h mov dx, offset wlcm int 21h jmp repeat exit: mov ah,4ch mov al,[excode] int 21h end start
|
Моя версия:
| Код | LOCALS @@ .model small .stack 256 .data buff db 2 dup(0),'h.',0dh,0ah,'$' excode db 0 welcome db 'Vyvod skankoda.',0dh,0ah,0ah wlcm db 'Vyxod ESC.',0dh,0ah db 'Nazhat' klavishu.',0dh,0ah,'$' .code proc keywaiting ;proverka na nazhatije klaviatury push ax mov ah, 1 int 16h pop ax ret endp keywaiting proc getch ;vozvrasciajet znachenije ascii-simvola upravliajuscej ili funkcionalnoj klavishi xor ah,ah int 16h or al,al jnz @@10 xchg ah,al add al,32 jmp short @@20 @@10: xor ah,ah cmp al,32 jb @@20 inc ah @@20: or ah,ah ret endp getch proc hexdigit ;preobrazujet 4-bitovoje znachenije v ascii cifru cmp dl,0ah jb @@10 add dl,37h ret @@10: or dl,'0' ret endp hexdigit start: mov ax,@data mov ds,ax mov es,ax mov ah,09h mov dx,offset welcome int 21h repeat: call keywaiting jz repeat call getch push ax mov dl,al shr dl,4 call hexdigit mov dh,dl mov dl,al and dl,0fh call hexdigit xchg dh,dl mov [word buff], dx ; tuta eror mov ah,09h mov dx,offset buff int 21h pop ax cmp al,1bh je exit mov ah,09h mov dx, offset wlcm int 21h jmp repeat exit: mov ah,4ch mov al,[excode] int 21h end start
|
**Error** kEYSCAN.ASM(64) Need right square bracket *Warning* kEYSCAN.ASM(64) Argument needs type override |