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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2010, 12:56   #1
Александе еть я
Пользователь
 
Регистрация: 18.10.2009
Сообщений: 29
По умолчанию все тот же ассемблер

Подскажите,как в masm 32 обращаться к сегменту данных. В Юрове "Ассемблер" идет конструкция
mov ax,@date
mov ds,ax
А masm 32 ругается.



Как в masm 32 оформить условие переходов

x= a/b+10, если a<b -51,если a=5 (a*b-4)/a если a>b

можно ли в Ассемвлере вводить числа с клавиатуры?
Александе еть я вне форума Ответить с цитированием
Старый 28.03.2010, 21:43   #2
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Цитата:
А masm 32 ругается
Не видя кода трудно что либо сказать
Цитата:
x= a/b+10, если a<b -51,если a=5 (a*b-4)/a если a>b
Вы можете нормально дать условие задачи, непонятно что, куда относится. Это 2 задания? Кто нибудт вообще понял задание?!
Цитата:
можно ли в Ассемвлере вводить числа с клавиатуры?
Можно и даже в некоторых случаях нужно. Для того чтобы узнать как это делается, включаем поиск по разделу ассемблер и набираем слово ввод. Появится куча материала
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 30.03.2010, 21:05   #3
Александе еть я
Пользователь
 
Регистрация: 18.10.2009
Сообщений: 29
По умолчанию

x= a/b+10, если a<b
-51,если a=5
(a*b-4)/a если a>b

вот такое условие.



в masm 32 editor в каркасе программы вставил:

.data
per 1 dw 5
.code
start
mov ax,data
mov ds,ax


end.

выдает ошибку:
error A2006:undefined symbolata

Идентификатор @data тоже в командах не воспринимает. ,
вопрос как обращаться к данным,которые описаны в сегменте данных...

напишите хотя бы сегмент кода программы,считающи 6! (факториал) с использыванием циклов..
Александе еть я вне форума Ответить с цитированием
Старый 31.03.2010, 05:23   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Александе еть я
Создай COM-файл и с .data и mov ax,@data/mov ds,ax можно будет не заморачиваться, вторая ошибка per 1 dw 5 название переменной должно быть одним словом, без разбивки пробелами, например: per1 или per_1 приведи текст программы полностью
Mikl___ вне форума Ответить с цитированием
Старый 31.03.2010, 13:11   #5
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

masm32 и 16бит dos не хорошее решение
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 31.03.2010, 17:54   #6
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Александе еть я
Вы собираете под win32, а это (ваш код) под dos, то ничего конечно же не выйдет!!!

Код:

        assume  cs:cseg, ds:dseg, ss:sseg

        ; code
cseg    segment
start:
         
          mov al,XA
          mov bl,XB
          cmp al,bl  ; если al(a) < bl(b), то    
          jb l1        ; угу, на l1 
          cmp al,bl  ; al=bl?
          jz l2        ; угу, на l2
          cmp al,bl  ; al>bl?
          ja l3        ; угу, на l3
          ret        

l1 :     
          xor dx,dx   ; на случай не целочисленного деления
          div bl
          mov cl,10h 
          add cl,al
         
          ret
l2:       mov ax,-51

          ret         
   
l3:      xor dx,dx ; на случай не целочисленного деления
          push ax
          imul bl
          sub al,4
          mov bx,0
          mov bl,al
          pop ax
          xchg al,bl
          div bl
                       
          ret 

cseg    ends


        ; data
dseg    segment byte
  XA  byte  20h
  XB  byte  2h
       

dseg    ends


        ; stack
sseg    segment stack

        db      100h    dup(?)

sseg    ends
end start
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
все тот же паскаль werus Помощь студентам 2 20.04.2009 15:26
Все тот же Pascal dinozavr Помощь студентам 6 19.04.2009 21:03
Все тот же IdHTTP (Post) AVer Работа с сетью в Delphi 5 28.09.2007 10:40