Родились сегодня:
deepTeNk


Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Модератор

580

Россия, Северодвинск


ID: 401284

Михаил Александров

Академик

418

Россия, Санкт-Петербург


ID: 401888

puporev

Профессор

279

Россия, Пермский край


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

266

Россия, пос. Теплоозёрск, ЕАО


ID: 137394

Megaloman

Мастер-Эксперт

231

Беларусь, Гомель


ID: 165461

Лангваген Сергей Евгеньевич

Советник

132

Россия, Московская обл.


ID: 400815

alexleonsm

6-й класс

130


8.6.10

29.03.2021

JS: 2.6.20
CSS: 4.4.22
jQuery: 3.6.0
DataForLocalStorage: 2021-04-11 17:16:03-standard


• Assembler

Создание программ на языке Assembler.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 193540

Раздел: • Assembler
Автор вопроса: Strastar (1-й класс)
Дата: 11.09.2018, 22:53 Консультация закрыта
Поступило ответов: 1

Здравствуйте! У меня возникли сложности с таким вопросом:
- по ассемблеру. Я только сейчас зарегистрировался тут и еще не знаю куда писать. Быть может Вы мне поможете.

Мне нужно понять как решать задачу.
____
Дан массив из 8 байт. Рассматривая его как массив логических значений х0
х1 х2 х3 х4 х5 х6 х7 (true-есть ненулевые биты в байте, false-все биты нулевые),
вычислить логическую формулу
f=(x7 & x6 & x1) V (x6 & x4 & x2 & x1 & x0) V (x7 & x6 & x3 & x1).
____

Как я понимаю создаю переменные. Вношу значения произвольные. А вот дальше не знаю уже..что и как.
Связь со мной, если что, то можно и через email, вконтакте.
Strastar@yandex.ru https://vk.com/strastar

Последнее редактирование 12.09.2018, 09:46 Гордиенко Андрей Владимирович (Профессионал)
Здравствуйте, Strastar!
Немного упростим формулу:
f = (x7 & x6 & x1) V (x6 & x4 & x2 & x1 & x0) V (x7 & x6 & x3 & x1) =
= x6 & x1 & (x7 V (x4 & x2 & x0) V (x7 & x3 )) =
= x6 & x1 & ((x7 V (x7 & x3 )) V (x4 & x2 & x0)) =
= x6 & x1 & (x7 V (x4 & x2 & x0))
Вот последнюю формулу и закодируем:
Код [Assembler]
data	segment 
x0	db	0
x1	db	66
x2	db	5
x3	db	0
x4	db	0ffh
x5	db	0
x6	db	10
x7	db	1
data	ends 
 
code	segment 
	assume cs:code, ds:data
start:
	mov	ax, data
	mov	ds, ax 
	
	cmp	x6, 0
	jz	return_false
	cmp	x1, 0
	jz	return_false
	cmp	x7, 0
	jnz	return_true
	cmp	x4, 0
	jz	return_false
	cmp	x2, 0
	jz	return_false
	cmp	x0, 0
	jz	return_false

return_true:
	mov	al, 1
	jmp	quit

return_false:
	mov	al, 0

quit:
	mov	ah, 4Ch		; Код завершения - значение f
	int	21h 		; Выход в DOS 
code	ends 
 
end 	start

Лысков Игорь Витальевич

Мастер-Эксперт
12.09.2018, 12:18
5


Спасибо Вам большое))

Мини-форум консультации # 193540

q_id

Коцюрбенко Алексей Владимирович

Старший модератор

ID: 312929

1

= общий =    12.09.2018, 07:30
Strastar:

То есть Вам нужно написать программу на ассемблере, реализующую эту формулу?

q_id

Гордиенко Андрей Владимирович

Профессионал

ID: 17387

2

= общий =    12.09.2018, 09:46
Экспертам раздела:

Обратите внимание на данную консультацию, перенесённую из другого раздела.

q_id

Хватов Сергей

Академик

ID: 20764

3

= общий =    12.09.2018, 09:54

Точно на ассемблере? Там и без этого есть что оптимизировать.

q_id

Гордиенко Андрей Владимирович

Профессионал

ID: 17387

4

= общий =    12.09.2018, 10:07
Хватов Сергей:

В Интернете аналогичные задания содержатся в пособиях по изучению Ассемблера.

q_id

Strastar

1-й класс

ID: 402280

5

= общий =    12.09.2018, 10:23

Здравствуйте. Пишем код и затем запускаем его в Turbo Debugger -е.

Последнее редактирование 12.09.2018, 10:28 Гордиенко Андрей Владимирович (Профессионал)

q_id

Гордиенко Андрей Владимирович

Профессионал

ID: 17387

6

= общий =    12.09.2018, 10:29
Коцюрбенко Алексей Владимирович:

Предыдущее сообщение автор вопроса, судя по всему, хотел адресовать Вам.

q_id

Хватов Сергей

Академик

ID: 20764

7

= общий =    12.09.2018, 10:32
Гордиенко Андрей Владимирович:

ещё до реализации есть о чём подумать. Да и в процессе тоже. Тем более, что изначально вопрос был в другом разделе.

q_id

Гордиенко Андрей Владимирович

Профессионал

ID: 17387

8

= общий =    12.09.2018, 10:34
Хватов Сергей:

Что Вам мешает думать? Но к разделу "Исследование операций" этот вопрос не относится в любом случае.

Коцюрбенко Алексей Владимирович

Гордиенко Андрей Владимирович

Профессионал

ID: 17387

9

= общий =    12.09.2018, 10:36
Strastar:

Во избежание лишних вопросов ответьте на этот:

То есть Вам нужно написать программу на ассемблере, реализующую эту формулу?

Коцюрбенко Алексей Владимирович

Коцюрбенко Алексей Владимирович

Strastar

1-й класс

ID: 402280

10

= общий =    12.09.2018, 10:41
Гордиенко Андрей Владимирович:

Да, мне нужно написать программу на ассемблере реализовав эту формулу..
В данной методичке прикрепленной это 4 лабораторная, третий вариант.

-----
Прикрепленный PDF:  скачать (PDF) [356.1 кб]

Коцюрбенко Алексей Владимирович

Strastar

1-й класс

ID: 402280

11

= общий =    12.09.2018, 10:42
Коцюрбенко Алексей Владимирович:

Все правильно.

Коцюрбенко Алексей Владимирович

Гордиенко Андрей Владимирович

Профессионал

ID: 17387

12

= общий =    12.09.2018, 10:46
Хватов Сергей:

В двух предыдущих сообщениях автор вопроса подтвердил, что требуется написать программу на Ассемблере. Теперь Вы можете со спокойной совестью думать и творить. smile

Коцюрбенко Алексей Владимирович

Strastar

1-й класс

ID: 402280

13

= общий =    12.09.2018, 11:10
Коцюрбенко Алексей Владимирович:

На данный момент у меня есть такой код. Это 5 вариант. Не факт, что код правильно написан.

Код [Assembler]
data segment
 NB db 10110100b
data ends

code segment
 assume cs: code, ds: data
start:
 mov ax, data
 mov ds, ax
 mov ax,0 
 mov al,NB
 mov ah,al
 mov bx,ax
 mov dx,ax
 mov cx,ax
 
 shr al,1 ;x7-5A
 shr ah,2 ;x6-2D
 shr bl,5 ;x3-05
 
 shr bh,4 ;x4-0B
 shr cl,6 ;x2-02
 shr ch,7 ;x1-01
 
 shr dl,8 ;x0-00
 
 mov dh,11111111b
 and dh,al
 and dh,ah
 and dh,bl ;x7*x6*x3
 
 mov bl,11111111b
 and bl,ah
 and bl,bh
 and bl,cl
 and bl,ch ;x6*x4*x2*x1
 
 mov bh,11111111b
 and bh,al
 and bh,ah
 and bh,cl
 and bh,dl ;x7*x6*x2*x0
 
 mov ax,0
 mov al,dh
 
 mov dx,0
 mov dl,bl
 
 mov cx,0
 mov cl,bh
 
 add al,dl
 add al,cl
quit:
 mov ax,4Ch ; Код завершения - младший байт суммы
 int 21h ; Выход в DOS
code ends

 end start

-----
Прикрепленный архив:  скачать (RAR) [1.1 кб]

Коцюрбенко Алексей Владимирович

Лысков Игорь Витальевич

Мастер-Эксперт

ID: 7438

14

= общий =    12.09.2018, 11:27
Strastar:

Хорошо, что есть кое-какой код. Посмотрим. Поможем...

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 223

Коцюрбенко Алексей Владимирович

Старший модератор

Рейтинг: 129

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 0

Evgen aka Chuma

6-й класс

Рейтинг: 0

cain52

3-й класс

Рейтинг: 0

Kdsfofwe21

2-й класс

Рейтинг: 0