Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

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


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

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

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 238
∙ повысить рейтинг »
Evgen aka Chuma
Статус: 6-й класс
Рейтинг: 0
∙ повысить рейтинг »
quirck
Статус: 1-й класс
Рейтинг: 0
∙ повысить рейтинг »

∙ Assembler

Номер выпуска:1695
Дата выхода:22.05.2018, 01:15
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:56 / 20
Вопросов / ответов:1 / 1

Консультация # 193239: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Не могу найти ошибку в коде, как я поняла нарушена логика программы. При компилировании сразу видно ошибку. Буду благодарна помощи!
© Цитата:

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

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

Не могу найти ошибку в коде, как я поняла нарушена логика программы. При компилировании сразу видно ошибку. Буду благодарна помощи!



Код (Assembler) :: выделить код
#start=Traffic_Lights.exe#
 
name "traffic2"
 
yellow_and_green equ      0000_0110b
red              equ      0000_0001b
yellow_and_red   equ      0000_0011b
green            equ      0000_0100b
 
all_red          equ      0010_0100_1001b
 
start:
nop
 
 
; 0,1,2
 
mov ax, green
out 4, ax
 
mov ax, yellow_and_green
out 4, ax
 
mov ax,red
out 4, ax
 
mov ax, yellow_and_red
out 4, ax
 
 
; 3,4,5
 
mov ax, green << 3
out 4, ax
 
mov ax, yellow_and_green << 3
out 4, ax
 
mov ax,red << 3
out 4, ax
 
mov ax, yellow_and_red << 3
out 4, ax
 
 
 
; 6,7,8
 
mov ax, green << 6
out 4, ax
 
mov ax, yellow_and_green << 6
out 4, ax
 
mov ax,red << 6
out 4, ax
 
mov ax, yellow_and_red << 6
out 4, ax
 
 
 
; 9,A,B
 
mov ax, green << 9
out 4, ax
 
mov ax, yellow_and_green << 9
out 4, ax
 
mov ax,red << 9
out 4, ax
 
mov ax, yellow_and_red << 9
out 4, ax
 
 
; all
 
mov ax, all_red
out 4, ax
 
mov ax, all_red << 1  ; all yellow
out 4, ax
 
mov ax, all_red << 2  ; all green  smile  
out 4, ax
 
 
jmp start

Дата отправки: 12.05.2018, 00:52
Вопрос задал: todomoku (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


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

Здравствуйте, todomoku!

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

Смотрите код, реализовано два варианта работы светофоров.

Код (Assembler) :: выделить код
#start=Traffic_Lights.exe#
 
name "traffic2" 


red1		equ	1
yellow1		equ	2
green1		equ	4

red2		equ	8
yellow2		equ	16
green2		equ	32

red3		equ	64
yellow3		equ	128
green3		equ	256 

red4		equ	512
yellow4		equ	1024
green4		equ	2048

yellowAll	equ	yellow4+yellow3+yellow2+yellow1
redAll		equ	red4+red3+red2+red1

start:	mov	si,offset Variant1
	call	show
	mov	si,offset Variant2
	call	show
jmp start

Show:	lodsw
	mov	cx,ax
@@01:	push	si
	push	cx
	lodsw
	mov	cx,ax
@@02:	push	cx
	lodsw
	out	4,ax

	mov     cx, 4Ch
	mov     dx, 4B40h
	mov     ah, 86h
	int     15h

	pop	cx
	loop	@@02

	pop	cx
	pop	si
	loop	@@01
	ret
Variant1	dw	5,4
dw	red4+green3+red2+green1
dw	yellowAll+red2+red4
dw	green4+red3+green2+red1
dw	yellowAll+red3+red1
Variant2	dw	2,10
dw	redAll
dw	redAll+yellow1
dw	red4+red3+red2+green1
dw	red4+red3+red2+yellow2+yellow1
dw	red4+red3+red1+green2
dw	red4+red3+red1+yellow3+yellow2
dw	red4+red2+red1+green3
dw	red4+red2+red1+yellow4+yellow3
dw	red3+red2+red1+green4
dw	red3+red2+red1+yellow4


Удачи!

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 17.05.2018, 17:40
Рейтинг ответа:

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


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

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

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


В избранное