Переставить биты в числе произвольной размерности представленном в виде массива чисел типа longint - Assembler
Формулировка задачи:
Пожалуйста, переведите программу из Паскаля в Ассемблер
program aeae; uses crt; const N=100; type Fbin=text; MyAr=array[1..N] of char; var F1,F2:Fbin; Num,M,a:longint; Ar1,Ar2:MyAr; i,j,count,nn:integer; ch:char; begin clrscr; Assign(F1,'Y:\text1.txt'); Reset(F1); Assign(F2,'Y:\text2.txt'); Rewrite(F2); count:=0; while not eof(F1) do begin read(F1,ch); inc(count); Ar1[count]:=ch; end; for i:=1 to count do begin Ar2[i]:=Ar1[count+1-i]; end; for i:=1 to count do write(F2,Ar2[i]); close(F1); close(F2); readln; end.
Решение задачи: «Переставить биты в числе произвольной размерности представленном в виде массива чисел типа longint»
textual
Листинг программы
program test; var A: array [0..99] of longint; LenA: integer; begin asm LEA SI, [A] MOV DI, SI MOV CX, [LenA] SHL CX, 1 SHL CX, 1 ADD DI, CX SUB DI, 1 @@for: MOV AL, [SI] MOV AH, [DI] MOV CX,8 @@1: SHL AL,1 RCR BL,1 LOOP @@1 MOV [DI], BL CMP SI,DI JE @@break MOV CX,8 @@2: SHL AH,1 RCR BL,1 LOOP @@2 MOV [SI], BL INC SI DEC DI CMP SI, DI JBE @@for @@break: end; end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д