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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2011, 20:25   #1
TROJANKA
Новичок
Джуниор
 
Регистрация: 21.11.2011
Сообщений: 3
Вопрос проблема с линкованием

Код:
.model tiny                                                                   
 
.code                                                
org 100h  
assume                          ds:@code
start:
jmp begin                      
maxLength                       db                      11      
 currentLength          db                      ?                  
S1                              db                         11 dup(?)       
S2                              db                      4 dup(?)        
 newLine                        db                      10,13,'$'                                                                                                                                                                                               
begin :
                                              
   push         ds              
        push            0
                        
        mov             ax,@data        
        mov             ds,ax   
                                                
        mov             ah, 3Fh
        mov             dx, offset maxLength                   
        int                     21h             
       mov                      ah,40h
        mov                     dx,offset newLine       
        int                     21h                                       
        mov                     bh, 0
        mov                     bl, currentLength
        mov                     S1[bx], byte ptr '$'
 
                        
        mov                     ah,40h
        mov                     dx,offset S1
        int                     21h                     
        mov                     ah,40h
        mov                     dx,offset newLine
        int                     21h
        mov                     bl, S1[0]                       
        mov                     S2[0], bl
        mov                     bl, S1[1]
                                                                                                 
        mov                     S2[1], bl
                        
        mov                     bl, S1[2]
                                                                                                  
        mov                     S2[2], bl
                        
        mov                     S2[3], '$'
                                                
        mov                     ah,40h
        mov                     dx,offset S2                                                           
        int                     21h
        mov                     ah,4ch                                             
                                                 
        int                     21h
                
                                
        end                     start
в чем здесь проблема, segment-relocatable items present выдает такую ошибку! задача была в том,чтобы при помощи функции 40h, 3fh преобразовать из model small вmodel tiny

Последний раз редактировалось rpy3uH; 21.11.2011 в 20:32.
TROJANKA вне форума Ответить с цитированием
Старый 21.11.2011, 21:06   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Код:
push         ds
push            0
mov             ax,@data
mov             ds,ax
Вот это убери, у тебя же в tiny-модели всего один сегмент, и ds сразу будет показывать на него.

А, ну и вообще этот код не должен работать, ты как-то слишком брутально вызываешь функции 3fh и 40h, не передавая им ни хендл файла, ни размер буфера.

Последний раз редактировалось Son Of Pain; 21.11.2011 в 21:09.
Son Of Pain вне форума Ответить с цитированием
Старый 21.11.2011, 21:16   #3
TROJANKA
Новичок
Джуниор
 
Регистрация: 21.11.2011
Сообщений: 3
По умолчанию

в таком случае не подскажите как упростить этот код? просто задание было переделать из model small в tiny, в small все корректно работало...правда вместо 40 и 3Fh функций использовал 9 и 0ah.
TROJANKA вне форума Ответить с цитированием
Старый 21.11.2011, 22:18   #4
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Используй их и здесь, и все заработает.
Son Of Pain вне форума Ответить с цитированием
Старый 21.11.2011, 23:40   #5
TROJANKA
Новичок
Джуниор
 
Регистрация: 21.11.2011
Сообщений: 3
По умолчанию

Спасибо огромное,все работает)
TROJANKA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37