Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

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

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

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

Пример косвенного межсегментного перехода взял в книге Юров, Хорошенко. Но почему-то 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
Репутация: 618

icq: 272532204
skype: goodwin-98
По умолчанию

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход от Delphi к с++ ПрИуЭт Общие вопросы C/C++ 3 26.12.2011 17:22
Дальний косвенный вызов Kenny McCormick Assembler 1 17.11.2010 01:59
Переход в браузере _-Re@l-_ Работа с сетью в Delphi 8 09.11.2010 12:06
Переход на C Gapro Свободное общение 8 09.11.2009 14:02
Переход Gorychev PHP 6 26.05.2008 01:16


14:29.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru