“Перевернуть” содержимое регистра ЕАХ в битовом представлении.
Подскажите, как сделать
Не понятен термин перевернуть.
Регистр EAX - регистр общего назначения (т. е. можем хранить в нем данные программы)
Состоит из составляющих AH и AL каждый по 8 бит. Объединенные вместе образуют 16-ти битный AX.
Так что переворачивать, поменять местами содержимое AH и AL что-ли?
Думаю, “перевернуть” содержимое регистра означает, что если в регистре значение, например, 384, то в итоге должно быть 483.
Такую задачу уже решили много лет назад
Код ASM
.model small
.data
string db 250,?, 256 dup ('$')
.code
start:
mov ax,@data
mov ds,ax
mov ax,0b800h
mov es,ax
mov ax,3
int 10h
mov ah,10
lea dx,string
int 21h
;посимвольно
lea si,string+1
xor cx,cx
mov cl,byte ptr [si]
add si,cx
mov di,160
mov ah,10
beg: std
lodsb
cld
stosw
loop beg
;по словам (разделитель - пробел)
lea di,string+1
mov si,320
xor cx,cx
mov cl,byte ptr [di]
add di,cx
inc cx
mov dx,cx
mov al,' '
deg: push ds
pop es
std
repnz scasb
push di
xchg dx,cx
sub cx,dx
add di,2
dec cx
mov ax,0b800h
mov es,ax
cld
mov ah,12
xchg si,di
begs: lodsb
stosw
loop begs
mov al,' '
stosw
mov si,di
pop di
mov cx,dx
or cx,cx
jnz deg
mov ah,10h
int 16h
mov ah,4ch
int 21h
end start
Источник: TASM Реверс строки
хорошо, спасибо, попробую разобраться