С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Что то типа
Код:START:: MOV #DATA,R5 MOV #100500, R4 ; это типа стописоттыщ раз :) 10$: CALL PRDAT DEC R4 ; или вместо этой и следующей инструкций SOB R4, 10$ BNE 10$ .EXIT
попробованы все варианты-работают
спасибо
добрый вечер
есть очень маленькая программка и ведёт она себя непонятно
ввод 3 символов, запись их в буфер, печать буфера, возврат на ожидание ввода.
так выглядит запущенной, 000-111-222-444-введённые символы, остальное печать их, первая и четвёртая печать правильная.Код HTML:.MCALL .TTYIN,.PRINT,.EXIT TEST: .TTYIN BUFF1 .TTYIN BUFF1+1 .TTYIN BUFF1+2 .PRINT #BUFF1 BR TEST .EXIT BUFF1: .BLKB 3 .END TEST
Скрытый текст
Код HTML:.SET EDIT K52 .SET SL ON .DAY Время Дата 18:13:44 01-Окт-2017, Воскресенье .R TST3 000 000 111 1 11 222 22 2 444 444[свернуть]
окно дизассемблера, 1042 1043 1044-байты буфера. видно что в 1042 пишется 15 вместо 60 первый символ второго ввода, а вот почему непонятно.
Скрытый текст
Код:Код HTML:001000 [000004] EMT 340 ; 000032:000000 -> PSW ; PSW :000004 -> 000776:001000 ; PC :001002 -> 000774:136530 ; 000030:143446 -> PC 001002 [000000] BCS 001000 001004 [000000] MOVB R0, 001042 ; R0 : 060 -> 001042 001010 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001012 -> 000774:001002 ; 000030:143446 -> PC 001012 [000000] BCS 001010 001014 [000000] MOVB R0, 001043 ; R0 : 060 -> 001043 001020 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001022 -> 000774:001012 ; 000030:143446 -> PC 001022 [000000] BCS 001020 001024 [000000] MOVB R0, 001044 ; R0 : 060 -> 001044 001030 [000000] MOV #546., R0 ; 001032:001042 -> R0 001034 [000000] EMT 351 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001036 -> 000774:001022 ; 000030:143446 -> PC 001036 [000000] BR 001000 001000 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001002 -> 000774:001036 ; 000030:143446 -> PC 001002 [000000] BCS 001000 001004 [000000] MOVB R0, 001042 ; R0 : 015 -> 001042 001010 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001012 -> 000774:001002 ; 000030:143446 -> PC 001012 [000000] BCS 001010 001014 [000000] MOVB R0, 001043 ; [B]R0 : 012 -> 001043[/B] 001020 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001022 -> 000774:001012 ; 000030:143446 -> PC 001022 [000000] BCS 001020 001024 [000000] MOVB R0, 001044 ; [B]R0 : 061 -> 001044[/B] 001030 [000000] MOV #546., R0 ; 001032:001042 -> R0 001034 [000000] EMT 351 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001036 -> 000774:001022 ; 000030:143446 -> PC 001036 [000000] BR 001000 001000 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001002 -> 000774:001036 ; 000030:143446 -> PC 001002 [000000] BCS 001000 001004 [000000] MOVB R0, 001042 ; R0 : 061 -> 001042 001010 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001012 -> 000774:001002 ; 000030:143446 -> PC 001012 [000000] BCS 001010 001014 [000000] MOVB R0, 001043 ; R0 : 061 -> 001043 001020 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001022 -> 000774:001012 ; 000030:143446 -> PC 001022 [000000] BCS 001020 001024 [000000] MOVB R0, 001044 ; R0 : 015 -> 001044 001030 [000000] MOV #546., R0 ; 001032:001042 -> R0 001034 [000000] EMT 351 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001036 -> 000774:001022 ; 000030:143446 -> PC 001036 [000000] BR 001000 001000 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001002 -> 000774:001036 ; 000030:143446 -> PC 001002 [000000] BCS 001000 001004 [000000] MOVB R0, 001042 ; R0 : 012 -> 001042 001010 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001012 -> 000774:001002 ; 000030:143446 -> PC 001012 [000000] BCS 001010 001014 [000000] MOVB R0, 001043 ; R0 : 062 -> 001043 001020 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001022 -> 000774:001012 ; 000030:143446 -> PC 001022 [000000] BCS 001020 001024 [000000] MOVB R0, 001044 ; R0 : 062 -> 001044 001030 [000000] MOV #546., R0 ; 001032:001042 -> R0 001034 [000000] EMT 351 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001036 -> 000774:001022 ; 000030:143446 -> PC 001036 [000000] BR 001000 001000 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001002 -> 000774:001036 ; 000030:143446 -> PC 001002 [000000] BCS 001000 001004 [000000] MOVB R0, 001042 ; R0 : 062 -> 001042 001010 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001012 -> 000774:001002 ; 000030:143446 -> PC 001012 [000000] BCS 001010 001014 [000000] MOVB R0, 001043 ; R0 : 015 -> 001043 001020 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001022 -> 000774:001012 ; 000030:143446 -> PC 001022 [000000] BCS 001020 001024 [000000] MOVB R0, 001044 ; R0 : 012 -> 001044 001030 [000000] MOV #546., R0 ; 001032:001042 -> R0 001034 [000000] EMT 351 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001036 -> 000774:001022 ; 000030:143446 -> PC 001036 [000000] BR 001000 001000 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001002 -> 000774:001036 ; 000030:143446 -> PC 001002 [000000] BCS 001000 001004 [000000] MOVB R0, 001042 ; R0 : 064 -> 001042 001010 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001012 -> 000774:001002 ; 000030:143446 -> PC 001012 [000000] BCS 001010 001014 [000000] MOVB R0, 001043 ; R0 : 064 -> 001043 001020 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001022 -> 000774:001012 ; 000030:143446 -> PC 001022 [000000] BCS 001020 001024 [000000] MOVB R0, 001044 ; R0 : 064 -> 001044 001030 [000000] MOV #546., R0 ; 001032:001042 -> R0 001034 [000000] EMT 351 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001036 -> 000774:001022 ; 000030:143446 -> PC 001036 [000000] BR 001000 001000 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001002 -> 000774:001036 ; 000030:143446 -> PC 001002 [000000] BCS 001000 001004 [000000] MOVB R0, 001042 ; R0 : 015 -> 001042 001010 [000000] EMT 340 ; 000032:000000 -> PSW ; PSW :000000 -> 000776:000000 ; PC :001012 -> 000774:001002 ; 000030:143446 -> PC 001012 [000000] BCS 001010 001014 [000000] MOVB R0, 001043 ; R0 : 012 -> 001043 001020 [000000] EMT 340[свернуть]
По умолчанию посимвольный ввод отключен, а эхо символов включено. Чтобы получить то, что хочется нужно установить биты TTSPC$ (10000) и TCBIT$ (100) в слове $JSW (44), например так:- - - Добавлено - - -Код:.ASECT .=44 .WORD 10100 .PSECT TEST: ...
Непонятно зачем .EXIT если до него дело не дойдет никогда, а так же буфер не годится для .PRINT - не зарезервировано место для завершающего нуля, и в теории строка может оказаться очень длинной (хотя в данном конкретном случае выравнивание автоматически зарезервирует этот байт)
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
спасибо
эхо появилось и ошибки вывода тоже.
Последний раз редактировалось gfd71; 01.10.2017 в 19:25.
Лучшая книга (на мой взгляд - может потому что первая была) по ассемблеру PDP-11, там в том числе вроде нюансы .TTYIN/.TTYOUT разбираются.
- - - Добавлено - - -
Ну так в программе получается и эхо символов работает и потом вывод символов делается еще раз
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
спасибо. видел ваше упоминание о книге раньше
скачал, листаю, книга написана в повествовательной форме поэтому человеком понимается лучше(начинающим) чем сухие справочники
- - - Добавлено - - -
в общем понятно, а вот в частности.....
эхо печатается чтоб видно было что печатаем, логично? а буфер куда я сложил напечатанное портится-непонятно(может буфер кривой??? по другому нужно делать наверно) печать я использовал для проверки буфера на предмет правильности заноса туда символов, а так по задумке буфер с символами будет использоваться для перехода к подпрограммам
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)