Size: a a a

Ассемблер

2021 May 27

ST

Saenro T in Ассемблер
Логика с аккумулятором дешевле обходится
источник

D

Den in Ассемблер
может это зависит опкод до 255 значение или больше от этого и размеры по байтам должны гулять по идее
источник

ST

Saenro T in Ассемблер
У каждого регистра есть своё предназначение. Одни вещи с AX дешевле, другие дешевле с CX, третьи с BX и т.д.
А некоторые с AX вообще невозможны.
источник

s

s54816 in Ассемблер
Для самого часто используемого регистра сделали специальные опкоды.
источник

ΔΒ

Δαρθ Βέιδερ... in Ассемблер
это было верно 40+ лет назад и то только для тех кто тогда перелезал на 8086 с 8080 или z80
источник

ΔΒ

Δαρθ Βέιδερ... in Ассемблер
хардверно же все реги в 8086 уже тогда были равнозначны, алу было пох куда класть и откуда брать
источник

DF

Dollar Føølish in Ассемблер
Спасибо
источник

D

Den in Ассемблер
Вот сделал наконец финальный вариант, теперь она не падает под вин, делает свое черное дело и работает пралльно! :)
format  PE console
jmp start
section '.data' data readable writeable
metka db '12397632'
section '.bss' data readable writeable
pack db 4 dup ?
section '.text' code readable executable
 start:
        pusha
        xor ecx,ecx
        mov cl, 4
        mov esi, metka
        mov edi, pack
       cld
 iter:
       mov ah,0
       lodsb
       sub al, 0x30
       shl al,4
       mov ah, [esi]
       sub ah, 0x30
       xor al,ah
       mov ah, 0
       stosb
       loop iter
       popa
ret
источник

D

Den in Ассемблер
получаются 4 байта bcd по 2 цифры слева направо как и написано изначально, не знаю верно это или нет, может надо наоборот сначала вторую цифру в паре потом первую, но принцип тот же в общем то
источник

D

Den in Ассемблер
а у тя что то очень хитрое получилось, не сразу и поймешь как работает цифры в little-endian в rdx пишуться :) но интереснее конечно, а у меня в лоб :)
источник

DC

Dima Casual in Ассемблер
источник

DC

Dima Casual in Ассемблер
Кто-то шарит это?
источник

AM

Alexander Morozov in Ассемблер
BIS(B) A,B - установка разрядов по маске.
источник

AM

Alexander Morozov in Ассемблер
Автоинкрементная двойная косвенная адресация. В регистре-указателе при этом содержится адрес адреса числа, с которым должен работать оператор. Обозначение: @(RN)+. Помимо основного действия (обращения к ячейке памяти) производится изменение (модификация) адреса этого обращения (ячейки). Слово «инкремент» означает увеличение чего-либо, в данном случае адреса ячейки памяти, к которой мы обращаемся (содержимого регистра, служащего указателем адреса).
источник

AM

Alexander Morozov in Ассемблер
источник

DC

Dima Casual in Ассемблер
Спасибо)
источник

DC

Dima Casual in Ассемблер
Так а как автоинкрементная если там ещё смещение 40
источник

DC

Dima Casual in Ассемблер
?
источник

AM

Alexander Morozov in Ассемблер
Или там просто две разных команды?
источник

AM

Alexander Morozov in Ассемблер
Не понимаю я эту задачу.
1) Для операции ИЛИ нужно два аргумента. Один из них лежит в ячейке, по адресу R0+40, а где брать второй?
2) Куда девать результат операции ИЛИ?
3) Какое к этому отношение имеет ячейка памяти 7745 со значением, ранее увеличенным на 1?
источник