|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.03.2017, 23:17 | #1 |
Пользователь
Регистрация: 07.02.2017
Сообщений: 22
|
помогите решить задачу в ассемблер
Реализация операции сложения
Даны два числа в двоичном виде. Поменять местами 8,5,3,2- разряды первого числа с 0,1,6,7 разрядами второго числа соответственно. Результаты умножить и сложить на 4 model tiny .code org 100h .386 start: ;b; xor ax,ax mov al,[a] btr ax,8 btr ax,5 btr ax,3 btr ax,2 xor bx,bx mov bl,[b] or bx,ax mov cx,bx ;a; xor ax,ax mov al,[b] btr ax,0 btr ax,1 btr ax,6 btr ax,7 xor bx,bx mov bl,[a] or bx,ax ;log and or cx,bx ;*4 shl cx,3 ;otvet cx ret a db 11111111b b db 10101010b end start вот код программы, не уверена правильный или нет, потому что когда компилирую ошибок нет, а вот когда запускаю то пишет ошибку |
10.03.2017, 07:41 | #3 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 472
|
prov6514, мы же вроде бы разбирали эту задачу с вами.
Сама программа выдаст неправильный ответ, т.к. btr ax, 7 - сделает флаг переноса CY равным 7-му биту в ax, а потом обнулит этот бит. Это, вроде бы правильно, но потом нужно запомнить где-то состояние этого бита (или равного ему CY). Но этого в программе - нет. Получается, что программа серией btr обнуляет биты в ax, но изначальное их состояние - забывается и далее нигде не учитывается. Ошибку вы получаете - оттого, что пытаетесь компилировать com программу в exe и потом запускаете exe. Что приводит к неправильной интерпретации команд. |
10.03.2017, 09:05 | #4 |
Пользователь
Регистрация: 07.02.2017
Сообщений: 22
|
спрашиваю, потому что как сказали у меня должен получиться ответ, а какой ответ понятия не имею.. c_TIuCh1fiY.jpg 27QfXBB0aCs.jpg 7q0raLQ-hwg.jpg..вот так должно получиться, только с другим ответом, сколько не пыталась не получается
|
10.03.2017, 13:00 | #5 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 472
|
Вот код вашей программы, проверенный компиляцией и отладкой в TA.exe. При нажатии Debug вы получите запуск в td вашей программы. В окне Wathes (переход Alt-2) в этом окне наберите ax - сможете наблюдать за изменением ax. Также в ваш код можно вставить процедуру вывода содержимого ax в двоичном или hex виде на экран. Но вопрос - вы сможете защитить преподавателю?
Код:
Последний раз редактировалось FPaul; 10.03.2017 в 13:04. |
10.03.2017, 13:23 | #6 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 472
|
Вот скрины
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ассемблер помогите решить | Borembo | Помощь студентам | 1 | 30.03.2015 18:13 |
решить задачу. (ассемблер) | alekseevich | Помощь студентам | 0 | 23.12.2012 03:06 |
Помогите решить задачу! | Anuta | Помощь студентам | 2 | 26.06.2008 05:10 |