WMmail.ru - сервис почтовых рассылок

среда, 6 июня 2012 г.

RFpro.ru: Ассемблер? Это просто! Учимся программировать

 
Если выпуск не отображается, вы можете прочесть его на сайте Отказаться от рекламы
  

  Мои подписки      Мои группы      Мои новости     
        Автор 
Калашников О.А.
      
  
Компьютеры и интернет   →   Софт   →   Программирование   →   RFpro.ru: Ассемблер? Это просто! Учимся программировать
  
RFpro.ru: Ассемблер? Это просто! Учимся программировать
 
 

Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 10861
• повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 4327
• повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2297
• повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Assembler (Ассемблер)

Номер выпуска:1517
Дата выхода:06.06.2012, 14:00
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:91 / 38
Вопросов / ответов:1 / 1

Консультация # 186308: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: У меня есть чуть неверно написанная программа для Tasm .386 . Помогите, пожалуйста, исправить ошибки. Решаемое выражение: (a^3-b^2)/c^2

Код :
;y=(a^3 - b^2)/
...

Консультация # 186308:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
У меня есть чуть неверно написанная программа для Tasm .386 . Помогите, пожалуйста, исправить ошибки.
Решаемое выражение: (a^3-b^2)/c^2

Код :
;y=(a^3 - b^2)/c^2       .model   small     .stack   100h     .data    a   db   ?  b   db   ?   c   db   ?       .code  start:     mov   ax,@data     mov   ds,ax       mov   al,b     cbw     mov bx,ax        imul   bx           mov   bx,ax     mov al,c     cbw     cwd            mov   ecx,eax        imul   ecx          mov   ecx,eax           mov al,a     cbw     cwd     mov eax,ecx     imul eax     imul eax     mov eax,ecx          sub   ax,bx           cwd     cdq     idiv ecx          mov   ax,4c00h     int   21h       end   start

Дата отправки: 03.06.2012, 13:26
Вопрос задал: Посетитель - 341182 (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Лысков Игорь Витальевич (Старший модератор):

Здравствуйте, Посетитель - 341182!
Предлагаю Вам Вашу программу с исправлениями
и свой вариант программы... smile

Код :
;y=(a^3 - b^2)/c^2       .model   small     .stack   100h     .data    a   db   15		;		!!!надо задать конкретные значения  b   db   7   c   db   3       .386			;		!!!указываем, что используются возможности 386 процессора     .code  start:     mov   ax,@data     mov   ds,ax       mov   al,b		;al = b     cbw			;ax = b     mov bx,ax   		;bx = b     imul   bx    	;dx:ax = b^2     cwde			;eax = b^2	!!!сразу перейдем к 32-битному регистру  ;   mov   bx,ax		;bx = b^2     mov    ebx, eax	;ebx = b^2  	     mov al,c		;al = c     cbw			;ax = c  ;   cwd     		;dx:ax = c 	!!!надо cwde, тогда eax = c     cwde			;eax = c	!!!       mov   ecx,eax	;ecx = c 	!!!при cwd старшее слово eax - неопределено     imul   ecx     	;edx:eax = c^2     mov   ecx,eax      	;ecx = c^2       mov al,a		;al = a     cbw			;ax = a  ;   cwd			;dx:ax = a 	!!!надо cwde, тогда eax = c     cwde			;eax = a	!!!  ;   mov eax,ecx		;		!!!убрать! затирается а     mov edi, eax		;		!!!надо сохранить     imul eax		;eax = a^2  ;   imul eax		;eax = a^4	!!!а надо a^3     imul eax, edi	;eax = a^3	  ;   mov eax,ecx		;		!!!убрать! затирается а^3       ;   sub   ax,bx      	;ax = a^3 - b^2 !!!лучше ранее сразу сохранять в ebx  ;   cwd			;dx:ax = b^2	!!!надо cwde, тогда eax = b^2     sub eax, ebx		;eax = a^3-b^2  !!!лучше так     cdq			;edx:eax = a^3-b^2     idiv ecx   		;eax = edx:eax / ecx       mov   ax,4c00h     int   21h       end   start

Можно было написать, например, так:
Код :
;y=(a^3 - b^2)/c^2       .model   small     .stack   100h     .data    a   db   15  b   db   7   c   db   3       .386     .code  start:     mov   ax,@data     mov   ds,ax       movsx eax, c     imul  eax, eax     mov   ecx, eax       movsx eax, b     imul  eax, eax     mov   ebx, eax       movsx eax, a     mov   edi, eax     imul  eax, edi     imul  eax, edi       sub   eax, ebx     cdq     idiv  ecx       mov   ax,4c00h     int   21h       end   start

Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 04.06.2012, 02:08

5
нет комментария
-----
Дата оценки: 04.06.2012, 10:59

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


 
 
Комментировать выпуск
     В избранное

Прошлые выпуски
RFpro.ru: Ассемблер? Это просто! Учимся программировать    03 июня 2012, 13:33
RFpro.ru: Ассемблер? Это просто! Учимся программировать    02 июня 2012, 13:02
RFpro.ru: Ассемблер? Это просто! Учимся программировать    17 мая 2012, 15:32

Все выпуски рассылки

6 июня 2012 отмечают:
Пушкинский день России (День русского языка)
День русского языка
День журналиста на Украине
Национальный день Швеции — День шведского флага
День памяти погибших в Южной Корее

Именины: Григорий, Иван, Никита, Степан, Федор
 
 

Subscribe рекомендует
 
Компьютеры и интернет  →   рассылки   и   группы
  
Немецкий язык с юмором
"Улыбайтесь, Господа! Улыбайтесь". Превратите скучный процесс зубрёжки немецких слов в интересное занятие, читая шутки на немецком языке.
Подписчиков: 16630
  Программирование на Visual Basic, VB .NET и VBA
Рассылка посвящена программированию на Visual Basic, постоянно обновляемые статьи по Visual Basic, примеры на VB, помогут вам постигнуть язык Visual Basic! Будет интересен как новичкам, так и гуру в VB.
Подписчиков: 928
  Шаблоны, рамки для фотомонтажа
Шаблоны для фотомонтажа женские,мужские,детские,парные,свадебные, рамки для фото и другие материалы для красивого оформления ваших фотографий(скрап-наборы,клипарт)
Подписчиков: 170
 
 
 
Подписан адрес: admin10383.deep@blogger.com
Код этой рассылки: comp.prog.assembler
Архив рассылки
Отписаться:  На сайте  Почтой
Поддержка подписчиков
Убрать рекламу
Другие рассылки этой тематики
Другие рассылки этого автора
 
Рассылка производится: Subscribe.Ru / ЗАО «Интернет-Проекты» / О компании / Политика конфиденциальности

Комментариев нет:

Отправить комментарий