Я новичок на ассемблере и изучаю его для экзаменов. Я программист и работал в C, C++, java, asp.net.Как данные хранятся в памяти или регистре
У меня есть tasm с победой xp.
Я хочу знать, как данные хранятся в памяти или регистрируются. Я хочу знать этот процесс. Я считаю, что это примерно так:
Во время ввода данных, например. номер:
Ввод десятичного числа -> Преобразован в шестнадцатеричный -> Сохранение ASCII шестнадцатеричного кода в регистры или память.
При получении данных:
ASCII в шестнадцатеричной в регистрах или памяти -> переустроенные в Hex -> Show Decimal номер на мониторе.
Правильно. ? Если нет, то может кто-нибудь сказать мне, с простым, например,
Хорошо, Майкл: Смотри ниже код, где я пытаюсь добавить две 1-значные номера, чтобы отобразить 2 цифры результата, как 6 + 5 = 11
Sseg segment stack
ends
code segment
;30h to 39h represent numbers 0-9
MOV BX, '6' ; ASCII CODE OF 6 IS STORED IN BX, equal to 36h
ADD BX, '5' ; ASCII CODE OF 5 (equal to 35h) IS ADDED IN BX, i.e total is 71h
Спасибо, Майкл ... Я принимаю свою ошибку ....
Хорошо, так вот, BX = 0071h, справа? Означает ли это, что BL = 00 и BH = 71?
Однако, если я это сделаю, я не могу узнать, как показать результат 11?
Эй Blechdose,
Можете ли вы помочь мне в еще одной проблемы. Я пытаюсь сравнить 2 значения. Если оба они одинаковы, то dl = 1 в противном случае dl = 0. Но в следующем коде он отображает 0 для тех же значений, он показывает мне 0. Почему это не прыгает?
sseg segment stack
ends
code segment
assume cs:code
mov dl,0
mov ax,5
mov bx,5
cmp ax,bx
jne NotEqual
je equal
NotEqual:
mov dl,0
add dl,30h
mov ah,02h
int 21h
mov ax,4c00h
int 21h
equal: mov dl,1
add dl,30h
mov ah,02h
int 21h
mov ax,4c00h
int 21h
code ends
end NotEqual
end equal
У этого действительно нет ответа, потому что вы можете его сохранить, как хотите. Обычно он будет храниться как int, конечно, поэтому никаких ascii не учитываются, кроме ввода и вывода. – harold
Что означает _ «ввод данных» _ и _ «выборка данных» _ означает здесь точно? Пожалуйста, проиллюстрируйте некоторым фактическим (прокомментированным) кодом. Я не уверен, почему вам кажется, что преобразование «строка-в-int» и «int-to-string» каким-то образом напрямую связано с регистрами CPU (?). Регистр просто содержит фиксированное количество бит, вот и все. – Michael
Ввод означает, что I m вводит данные в регистры 6 и 5, делая операцию (например, добавление), 6 + 5 и получая результат 11 из регистра для мониторинга. – Piyush