Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2013, 19:20   #1
nati_94
Пользователь
 
Регистрация: 18.02.2013
Сообщений: 25
Восклицание программа очень простая, но у меня вылазит ошибка при запуске и ничего на экран не выводит

Найти в DSEG: 4-й по порядку код CR (0Dh)
я хотела бы выводить данные, пока не выведится 4й код CR,
чтобы показать, что правильно работвет программа, и чтоб хоть что-то выводило

когда компилирую программу ошибок нет, но когда запускаю вылазит ошибка, помогите разобраться
Код:
.MODEL SMALL
.STACK 100h
.DATA
DAN db  3Bh,20h,0Dh,32h,0A1h,24h,0A0h,0Dh,0,0A2h,20h
db  0B0h,40h,24h,0E1h,0Dh,0,24h,3Bh,30h,0C0h,0Dh
db  20h,97h,3Bh,83h,0,0A0h,20h,0D0h,27h,20h,0C6h
db  91h,0,20h,0FEh,3Bh,90h,0,3Bh,24h,17h,20h,24h
NET     db   'KOD CR NE NAIDEN'
 
.code
start:
;инициализируем адрес сегмента данных
mov ax,@Data
mov ds,ax
;поиск начального элемента в DAN
mov cx,4        ;счетчик внешних циклов
mov dx,64       ;счетчик вложенных циклов
lea si,DAN  ;нач. адрес данных
 
;начало внешнего цикла
EXT:    push    cx  ;сохранение сч.внешних циклов
mov cx,dx   ;загрузка сч.вложенных циклов
;вложенный цикл
LOC:
cmp byte ptr [si],0Dh;код CR?
inc si
loopne LOC;повторять,пока нет
;продолжение внешнего цикла
                mov dx,cx   ;сч.вложенных циклов - в dx
    pop cx  ;восстановление сч.внешних циклов
    loop    EXT ;повторять,пока не найден 4й повтор
mov cx,dx
mov bx,0
print:
mov ax, DAN[bx] 
int 21h
inc bx
loop print
 mov    AH,4Ch   ; (8) Функция 4Ch завершения программы
              int    21h      ; (10) Вызов DOS
 
end start


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 24.03.2013 в 21:24.
nati_94 вне форума Ответить с цитированием
Старый 24.03.2013, 23:17   #2
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Код:
start:

MOV ds, @Data

MOV dx, 4
MOV cx, 64

LEA di, [DAN]
MOV al, 0Dh 

EXT:
    REPNE SCASB

SUB dx, 1
JNZ EXT

MOV ah, 2
MOV dl, [di]
int 21h

MOV ah, 4Ch
INT 21h
 
end start
в теории должно что-то выводить (первый символ после 4-го CR)
f.hump вне форума Ответить с цитированием
Старый 25.03.2013, 00:15   #3
nati_94
Пользователь
 
Регистрация: 18.02.2013
Сообщений: 25
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
Код:
start:

MOV ds, @Data

MOV dx, 4
MOV cx, 64

LEA di, [DAN]
MOV al, 0Dh 

EXT:
    REPNE SCASB

SUB dx, 1
JNZ EXT

MOV ah, 2
MOV dl, [di]
int 21h

MOV ah, 4Ch
INT 21h
 
end start
в теории должно что-то выводить (первый символ после 4-го CR)
поменяла эту строку
MOV ds, @Data
на эти
MOV ax, @Data
MOV DS,AX

перестало выдавать ошибку, но все равно ничего не выводит
nati_94 вне форума Ответить с цитированием
Старый 25.03.2013, 01:20   #4
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

ну тогда можно попробовать вывести остаток строки
вот это
Код:
MOV ah, 2
MOV dl, [di]
int 21h
заменить на это
Код:
MOV ah, 9
MOV dx, di
int 21h
и еще после
MOV DS,AX

добавить

MOV es, ax

Последний раз редактировалось f.hump; 25.03.2013 в 01:27.
f.hump вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с++как вывести указатель структуры на экран????? а то все время что-нибудь подчеркивает или просто ничего не выводит(((( nati_94 Помощь студентам 2 20.02.2013 00:14
Ошибка при запуске Windows: синий экран и STOP 0000000x5C typik Компьютерное железо 3 03.12.2011 05:02
ошибка: синий экран при запуске игры. 13xXx13 Компьютерное железо 4 19.01.2011 15:23
C++ наследование классов. очень простая ошибка, немогу разобраться в выводе при одинаковых массивах Sanu0074 Помощь студентам 1 02.06.2010 10:33