1. Заголовок или название темы должно быть информативным 2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE] 3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора. 5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM! 6. Проверяйте программы перед тем, как выложить их на форум!!
Изучение ассемблере что-то не очень дается, поэтому появляется много вопросов, вот некоторые из них 1) Какого размера регистр и что в него можно положить (мы заносили туда даже строку, но не пойму как она туда помещается)? 2)как описать вещ число? 3)как сделать цикл в цикле (цикл ведь работает только с регистром cx?)? Вот такие пока вопросы, кому не сложно ответьте пожалуйста
.model small .stack .data a db '*$' ;i db ? .code _start: mov ah, 6h ; очистка окна mov al, 0 ; при AL = 0 заданное окно очищается _полностью_ mov ch, 0 ; строка - начало окна mov cl, 0 ; столбец - начало окна mov dh, 24 ; строка - конец окна mov dl, 79 ; столбец - конец окна mov bh, 02h ; цвет
; вызываем, собственно, прерывание, которое выполнит функцию ; с номером, хранящимся в AH (в твоем случае это очистка экрана) int 10h
mov ah, 2h ; функция 02 - изменить положение курсора mov bh, 0h mov dh, 1 ; переход на строку mov dl, 2 ; переход на столбец int 10h ; теперь выполнится ф-я 02 прерывания 10H
mov ax, SEG a ; заносим в AX сегментную часть адреса строки mov ds, ax ; и копируем ее в DS (напрямую занести "SEG a" в DS тебе не позволят) mov dx, OFFSET a ; в DX - заносим вторую часть адреса строки: смещение
; таким образом, после всего сделанного полный адрес строки хранится в DS:DX ; что нам и нужно для вывода на экран mov ah, 09h ; функция вывода на экран int 21h ; вызываем в-ю 09h
mov ax, 4c00h ; завершение работы программы и выход int 21h ; <-- выполняем вышесказанное