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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2012, 23:24   #1
eymar
Пользователь
 
Регистрация: 23.09.2012
Сообщений: 17
По умолчанию Косвенный межсегментный переход

Здравствуйте. Мне необходимо в программе организовать косвенный межсегментный переход.

Пример косвенного межсегментного перехода взял в книге Юров, Хорошенко. Но почему-то MASM ругается и говорит: "Symbol not defined: @m1". Подскажите, пожалуйста, в чем причина ошибки? Как ее можно исправить?

Есть такой код:

Код:
.386
Data1 segment USE16

Sump		dw	0
Sumnp	    dw	0
A1			dw	6 dup (8 dup (7 dup (102h)))

;x EQU 7					
;y EQU 8
;z EQU 6

addrs dd  @m1
Data1 ends




code         SEGMENT USE16

              ASSUME   cs:code,ds:Data1
               
begin:
              mov      ax,Data1       
              mov      ds,ax 

				
			  
			xor ebp,ebp
			lea edx,A1	
			
			  
			l1:
			mov bx,A1[ebp*2]				; проверка значения текущего элемента массива
			LEA bx,A1[ebp*2]				; загружаем в регистр BX смещение элемента массива относительно ds
			mov ax,bx
			AND ax,00000001b				; проверка смщения в сегмент на четность 
			cmp ax,1						; если смещение нечетное тогда переходим к метке @10
			
			je @10							; переход если DX=1
			add Sump,bx						; выполняется если смещение четное
			jmp @20
			
			@10:
			add Sumnp,BX					; выполняется если смещение нечетное
			
			@20:
			inc ebp
			cmp ebp,5;z*y*x
			jb l1
			
			mov ax,Sump
			mov bx,Sumnp
			
			mov di, offset A1[336*2]
			add di,2
			
			;lea bx, addr_m1
			jmp @m1
     
             

             
              mov      ax,4c00h 
              int      21h

code          ENDS
              end      begin
			  
			  
			 
Data2 segment USE16
A2 dw 3 dup(8 dup(2 dup (0)))
A3 dw 2 dup(4 dup(4 dup (0)))
Data2 ends
			  
			  
code2         SEGMENT USE16
              ASSUME   cs:code2,es:Data2, ds:Data1
start:		
			  @m1 label far
              mov      ax,bx        
              mov      es,ax   
			  
			  xor di,di
			  
			  lea di,A2
			  mov ax,Sump
			  mov cx,48
			  REP STOSW
			  
			  lea di,A3
			  mov ax,Sumnp
			  mov cx,32
			  REP stosw
			  
			  xor ax,ax
			  xor ax,ax
			  
			  mov ax,A2[10]
			  mov bx,A3[10]
			  
			  
			  
				
             
              mov      ax,4c00h 
              int      21h


code2          ENDS
				end      start



Спасибо большое!
eymar вне форума Ответить с цитированием
Старый 13.11.2012, 00:06   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

У вас пол программы находится за дерективой end
компилятор ее и не видит.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 13.11.2012 в 00:27.
Goodwin98 вне форума Ответить с цитированием
Старый 14.11.2012, 16:38   #3
eymar
Пользователь
 
Регистрация: 23.09.2012
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
У вас пол программы находится за дерективой end
компилятор ее и не видит.
Спасибо большое! Я сразу и не заметил эту глупость.
eymar вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход от Delphi к с++ ПрИуЭт Общие вопросы C/C++ 3 26.12.2011 17:22
Дальний косвенный вызов Kenny McCormick Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 17.11.2010 00:59
Переход в браузере _-Re@l-_ Работа с сетью в Delphi 8 09.11.2010 11:06
Переход на C Gapro Свободное общение 8 09.11.2009 13:02
Переход Gorychev PHP 6 26.05.2008 01:16