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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2013, 13:28   #1
datgen
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 36
По умолчанию не повторяется цикл больше 10-и раз

Здравствуйте,почему то цикл не повторяется больше 10-раз,если в регистре CX значение 11 и более,то когда цикл пройдет 10-й раз
и нужно опять переходить на метку lp1,то переход на lp1 не осуществляется и переходит непонятно в какую область.

Код:
ASSUME cs:LAB3, ds: data
	data segment
	Str1 db'abc','$'
	Str2 db '$'

	data ends
LAB3 segment

Begin:

	mov ax, data
	mov ds, ax
	mov es, ax

	lea si, es:Str1
	lea di, es:Str2
	
	mov cx, 11
lp1:
	mov bx,cx
	mov cx, 3
	
	lp2:
	movsb
	loop lp2
	
	lea si, es:Str1
	
	mov cx,bx
loop lp1

    mov ax,'$'
	mov DS:[DI],ax
	lea dx, Str2
	mov ah, 09h
	int 21h

	mov ax, 4c00h
	int 21h

LAB3 ends


end begin
сейчас заметил что не с циклом дело,а с длинной строки ,то есть чем длиннее строка тем меньше раз она повторится

Последний раз редактировалось Serge_Bliznykov; 16.10.2013 в 13:57.
datgen вне форума Ответить с цитированием
Старый 16.10.2013, 15:32   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а куда Вы собрались копировать Str1 ?! в Str2 ?
А вы для неё место выделили?!!
Одного байта, в котором находится символ '$' (который сразу же будет затёрт, кстати) явно недостаточно!

однако, несмотря на это, ваша программа работает! затирая всё после Str2, конечно,
но, тем не менее, заполняет 11 раз по три символа из Str1 - в Str2
после чего дописывает в конец Str2 символ '$' (чтобы можно было вывести данный текст через функцию DOS 09h )
и выводит текст на экран, после чего завершается.

Что Вас смутило? Почему Вы решили, что цикл не выполняется заданное число раз?!

Последний раз редактировалось Serge_Bliznykov; 16.10.2013 в 15:41.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
записать значение Edita в Memo если повторяется 10 раз Aleksandr Общие вопросы Delphi 6 19.04.2013 05:14
сколько раз повторяется элемент Gordan007 Помощь студентам 0 17.12.2011 03:21
сколько раз повторяется число feras Общие вопросы Delphi 2 21.10.2011 12:46
Найти сколько раз один символ повторяется? Ayat Общие вопросы C/C++ 5 17.10.2010 21:03
Сколько раз повторяется элемент в двоичном дереве? Maksik Помощь студентам 1 21.06.2010 17:03