1. Заголовок или название темы должно быть информативным 2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE] 3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора. 5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM! 6. Проверяйте программы перед тем, как выложить их на форум!!
Изучение ассемблере что-то не очень дается, поэтому появляется много вопросов, вот некоторые из них 1) Какого размера регистр и что в него можно положить (мы заносили туда даже строку, но не пойму как она туда помещается)? 2)как описать вещ число? 3)как сделать цикл в цикле (цикл ведь работает только с регистром cx?)? Вот такие пока вопросы, кому не сложно ответьте пожалуйста
1) Какого размера регистр и что в него можно положить (мы заносили туда даже строку, но не пойму как она туда помещается)?
Размер регистров eax, ebx, ecx ... = 32 бита (двойное слово), регистров ax, bx, cx, ... (это младшие части расширенных регистров) = соответственно 16 бит (слово)... А заносили вы в регистр - не строку, а ее адрес (т.е., смещение относительно начала сегмента, в котором находится строка).
Цитата(Client @ 28.03.2009 14:05)
2)как описать вещ число?
.data X dd 1.5 Y dd 2.7
Вот тебе уже 2 вещественных числа одинарной точности... DD (4 байта) - одинарная точность, DQ (8 байт) - двойная точность, DT (10 байт) - расширенная точность...
Цитата(Client @ 28.03.2009 14:05)
3)как сделать цикл в цикле (цикл ведь работает только с регистром cx?)?
Никто ж не запрещает тебе сохранять счетчик внешнего цикла, правда? Т.е.,
outer: mov cx, 10 ; внешний цикл push cx
inner: mov cx, 5 ; внутренний цикл ; ... делаешь то, что нужно loop inner