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

воскресенье, 4 октября 2015 г.

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

 
Если выпуск не отображается, вы можете прочесть его на сайте
  
  
Средства ухода, которые знают, что нужно мужской коже
  
  
Новый сервис в помощь бизнесу! Новый сервис в помощь бизнесу!
Современная альтернатива пластиковым картам и новый канал связи между бизнесом и клиентом

  Они знают, как выиграть миллионы! Они знают, как выиграть миллионы!
Хотите стать следующим? Зарегистрируйтесь и присоединяйтесь к нашим победителям!

  Покинет ли Греция Евросоюз? Покинет ли Греция Евросоюз?
Впереди невероятная торговая возможность

 
  

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

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

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

Асмик Гаряка
Статус: Советник
Рейтинг: 10984
• повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 4141
• повысить рейтинг »
Куликов Роман Евгеньевич
Статус: 1-й класс
Рейтинг: 0
• повысить рейтинг »

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

Номер выпуска:1565
Дата выхода:04.10.2015, 19:51
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:14 / 7
Вопросов / ответов:1 / 1

Консультация # 188072: Уважаемые эксперты! Пожалуйста, помогите: у меня задача следующая: Разработать с помощью Debug программу, выполняющую вывод на экран текстового сообщения и последующее вычисле- ние выражения: Y=[(Х1+Х2)ХЗ–Х4]/Х5, где Х1—Х5 — десятичные целые числа, выбранные в соответст- вии с номером варианта из таблицы 3. Результат выч...


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

Уважаемые эксперты! Пожалуйста, помогите:
у меня задача следующая:

Разработать с помощью Debug программу, выполняющую
вывод на экран текстового сообщения и последующее вычисле-
ние выражения:
Y=[(Х1+Х2)ХЗ–Х4]/Х5,
где Х1—Х5 — десятичные целые числа, выбранные в соответст-
вии с номером варианта из таблицы 3.
Результат вычисления выражения программа помещает в
регистры AX и DX. Нужно вывести эти результаты в двоичной
системе счисления.
Структура выходного сообщения программы:
"Программа вычисления выражения Y=[(Х1+Х2)ХЗ–Х4]/Х5, где
X1=..., X2=..., X3=..., X4=..., X5=..."
AX=0011110111000101 DX=0000000000010101
Промежуточные результаты можно будет наблюдать при
запуске программы в debug, выполняя пошаговое выполнение
инструкций.
Вместо точек должны выводиться заданные числа (в шест-
надцатеричной системе).

Вот сделала:

Код :
MOV     AH,09  MOV     DX,200  INT     21  MOV     AX,01B4 //x1  MOV     BX,0147   //x2  ADD     AX,BX         //сложение  MOV     BX,000D        //х3  MUL     BX                       //умножаем сумму на х3  MOV     BX,0CF3                   //х4  SUB     AX,BX              //вычитаем из произведения х4  MOV     BX,0012          //х5  DIV     BX               //делим на х5  MOV     AH,0  INT     16  INT     20


Не знаю как сделать структуру выходного сообщения по шаблону : "Программа вычисления выражения Y=[(Х1+Х2)ХЗ–Х4]/Х5, где
X1=..., X2=..., X3=..., X4=..., X5=..."

Может кто-нибудь чем-нибудь поможет?! я совсем новичок.

Дата отправки: 01.10.2015, 19:18
Вопрос задал: Евгения (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Модератор):

Здравствуйте, Посетитель - 398689!
Вот код:

Код :
model	tiny  code  org	100h  start:  MOV     AX,01B4h;x1  MOV     BX,0147h;x2  ADD     AX,BX;сложение  MOV     BX,000Dh;х3  MUL     BX;умножаем сумму на х3  MOV     BX,0CF3h;х4  SUB     AX,BX;вычитаем из произведения х4  sbb	dx,0  MOV     BX,0012h;х5  DIV     BX;делим на х5  ;  lea   si,dbAX  call   outBin  lea   si,dbDx  mov   ax,dx  Call   outBin  mov   ah,9  lea   dx,dbOut  int   21h  xor   ax,ax  int   16h  ret  OutBin:  mov   cx,16  @@01:  xor   bx,bx  shl   ax,1  adc   bl,'0'  mov   [si],bl  inc   si  loop   @@01  ret  ;тут можно поставить ORG 200h, но у Вас уже есть все адреса.  dbOut db 10,13,'Программа вычисления выражения Y=[(Х1+Х2)ХЗ–Х4]/Х5, где:'  db 10,13,'X1=01B4h,'  db 10,13,'X2=0147h,'  db 10,13,'X3=000Dh,'  db 10,13,'X4=0CF3h,'  db 10,13,'X5=0012h'  db 10,13,'AX='  dbAX db 16 dup(?),' DX='  dbDX db 16 dup(?),'$'  end	start

Листинг кода:
Код :
     1	0000			     model   tiny        2	0000			     .code        3				     org     100h        4	0100			     start:        5	0100  B8 01B4		     MOV     AX,01B4h;x1        6	0103  BB 0147		     MOV     BX,0147h;x2        7	0106  03 C3		     ADD     AX,BX;сложение        8	0108  BB 000D		     MOV     BX,000Dh;х3        9	010B  F7 E3		     MUL     BX;умножаем сумму на х3       10	010D  BB 0CF3		     MOV     BX,0CF3h;х4       11	0110  2B C3		     SUB     AX,BX;вычитаем из произведения х4       12	0112  83 DA 00		     sbb     dx,0       13	0115  BB 0012		     MOV     BX,0012h;х5       14	0118  F7 F3		     DIV     BX;делим на х5       15				     ;       16	011A  BE 01B9r		     lea   si,dbAX       17	011D  E8 0014		     call   outBin       18	0120  BE 01CDr		     lea   si,dbDx       19	0123  8B C2		     mov   ax,dx       20	0125  E8 000C		     Call   outBin       21	0128  B4 09		     mov   ah,9       22	012A  BA 0144r		     lea   dx,dbOut       23	012D  CD 21		     int   21h       24	012F  33 C0		     xor   ax,ax       25	0131  CD 16		     int   16h       26	0133  C3		     ret       27	0134			     OutBin:       28	0134  B9 0010		     mov   cx,16       29	0137			     @@01:       30	0137  33 DB		     xor   bx,bx       31	0139  D1 E0		     shl   ax,1       32	013B  80 D3 30		     adc   bl,'0'       33	013E  88 1C		     mov   [si],bl       34	0140  46		     inc   si       35	0141  E2 F4		     loop   @@01       36	0143  C3		     ret       37				     ;тут можно поставить ORG 200h, но у Вас уже есть все адреса       38	0144  0A 0D CF F0 EE E3	F0+  dbOut db 10,13,'Программа вычисления выражения Y=[(Х1+Х2)ХЗ–Х4]/Х5, где:'       39	      E0 EC EC E0 20 E2	FB+       40	      F7 E8 F1 EB E5 ED	E8+       41	      FF 20 E2 FB F0 E0	E6+       42	      E5 ED E8 FF 20 59	3D+       43	      5B 28 D5 31 2B D5	32+       44	      29 D5 C7 96 D5 34	5D+       45	      2F D5 35 2C 20 E3	E4+       46	      E5 3A       47	017E  0A 0D 58 31 3D 30	31+  db	10,13,'X1=01B4h,'       48	      42 34 68 2C       49	0189  0A 0D 58 32 3D 30	31+  db	10,13,'X2=0147h,'       50	      34 37 68 2C       51	0194  0A 0D 58 33 3D 30	30+  db	10,13,'X3=000Dh,'       52	      30 44 68 2C       53	019F  0A 0D 58 34 3D 30	43+  db	10,13,'X4=0CF3h,'       54	      46 33 68 2C       55	01AA  0A 0D 58 35 3D 30	30+  db	10,13,'X5=0012h'       56	      31 32 68       57	01B4  0A 0D 41 58 3D	     db	10,13,'AX='       58	01B9  10*(??) 20 44 58 3D    dbAX db 16	dup(?),' DX='       59	01CD  10*(??) 24	     dbDX db 16	dup(?),'$'       60				     end     start

Он Вам пригодится когда будете вводить адреса и данные в Debug.

Debug:
Команды:
-a 100 -ввод мнемоники ассемблера;
-e 100 -ввод кодов в 16-ой системе;
(адрес можно вводить без пробела)
-g -запуск программы на выполнение.

У Вас должно получится приблизительно так:


А ещё, код в кодировке ср1251, для того, чтобы не подучить "крякозяблы" данные должны быть такими:
Код :
    38	0144   0A 0D 8F E0 AE A3	E0+  dbOut db 10,13,'Программа вычисления выражения Y=[(Х1+Х2)ХЗЦХ4]/Х5, где:'       39	      A0 AC AC A0 20 A2	EB+       40	      E7 A8 E1 AB A5 AD	A8+       41	      EF 20 A2 EB E0 A0	A6+       42	      A5 AD A8 EF 20 59	3D+       43	      5B 28 95 31 2B 95	32+       44	      29 95 87 96 95 34	5D+       45	      2F 95 35 2C 20 A3	A4+       46	      A5 3A

Это кодировка DOS886.
Удачи!

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 03.10.2015, 00:28

5
нет комментария
-----
Дата оценки: 03.10.2015, 08:24

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

НЕ одобряю +3 одобряю!


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

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

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

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

Прошлые выпуски
RFpro.ru: Ассемблер? Это просто! Учимся программировать    22 сентября 2015, 14:23
RFpro.ru: Ассемблер? Это просто! Учимся программировать    26 августа 2015, 17:35
RFpro.ru: Ассемблер? Это просто! Учимся программировать    08 июня 2014, 15:10

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

Subscribe рекомендует
 
Компьютеры и интернет  →   рассылки   и   группы
  
ИЮМ.
Рассылка о бизнесе ведется с 2000-го года. В десятках городов созданы команды ИЮМ. Проводятся командные соревнования. Команда подскажет ошибки и вдохнет уверенность в себе. Вместе создавать и развивать бизнес легче! Проводятся командные соревнования.
Подписчиков: 847756
  Программирование на C# для чайников
Уроки программирования C# для чайников
Подписчиков: 258
  1000 и одна интересная книга
1000 и одна интересная книга. Подписавшись на эту рассылку, вы имеете возможность два раза в неделю получать информацию о великолепных книгах, известных авторов.
Подписчиков: 234
 
 
 
Подписан адрес: admin10383.deep@blogger.com
Код этой рассылки: comp.prog.assembler
Архив рассылки
Отписаться:  На сайте  Почтой
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
 
Внимание! Для вашего удобства ссылки в данном письме позволяют получить доступ в ваш аккаунт без ввода пароля. Не пересылайте это письмо другим людям и не вставляйте его текст в блоги, форумы и чаты.
 
Рассылка производится: Subscribe.Ru / АО "Интернет-Проекты" / О компании / Политика конфиденциальности

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

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