Добрый день! В нижеописанное программе в строку s вводится символы, а затем они должны быть выведены по 5 в ряд. Использую для вывода прерывание Dos int21 c 02A в регистре Ah,т.е. вывожу посимвольно. Идея такая: определяю адрес строки (и соответсвенно 1-го в ней символа, помещаю в dl переменную, по вычисленному адресу и накидываю еденицу туда,где находится текущий адрес(так как строка у меня байтовая), но ничего не работает,программа выдает ошибку Может я что-то с адресацией напутал? Просьба помочь разобраться! p.s. показываю только сегмент данных и сегмент кода. .data ;; input maxl db 30 actl db ? s db 27 dup('$') ;; ---------------------------- ;; enter ent db 13,10,'$' ;; ---------------------- ;; Output variable adr dw ? count dw ? .code ; PROGRAM ;; Massiv INPUT mov ah,0Ah lea dx,maxl int 21h ;; enter mov ah,09h lea dx,ent int 21h ;; Massiv OUTPUT lea ax,s ; determinig s offset mov adr,ax ; saving string s DS:offset in adr var mov bx,adr mov ax,25 mov count,ax ; main_loop counter main_loop: mov cx,5 ; sub_loop counter sub_loop: mov ax,02h ; ------------------- mov dl,[bx] ; putting to dl current symbol int 21h ; ------------------- add bx,1 dec count ; decrising main_loop counter loop sub_loop ; repeating this operations for 5 times ;; enter mov ah,09h lea dx,ent int 21h ;; -------------- mov ax,5 ; ----------------------------------- cmp count,ax ; checking main_loop counter jns main_loop ; if count-5 >= then going to main_loop ;; Massiv OUTPUT end
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Проблема с выбором пунктов меню (2018)
- Форум Dos,assembler (2006)
- Форум Assembler (2012)
- Форум Assembler (2019)
- Форум assembler (2003)
- Форум Assembler рекурсия (2020)
- Форум Assembler messages (2016)
- Форум assembler: wtf? (2016)
- Форум GNU Assembly (2021)
- Форум [жж]assembler (2009)