User Tag List

Показано с 1 по 10 из 229

Тема: Написание программ для БК0010

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,048
    Спасибо Благодарностей отдано 
    1,141
    Спасибо Благодарностей получено 
    1,459
    Поблагодарили
    520 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для комплекта ещё - вариант из Stop the Express для MS-0515.
    Но на самом деле тут в конце приписан ещё лишний нолик, потому что выводятся заработанные очки.
    Точку входа Z34420 можно использовать для печати 3-значного числа.
    Код:
    ; Подпрограмма: Печать 5-значного десятичного числа; R3=число
    Z34400: MOV	#023420, R2		; 10000.
    Z34404: CALL	Z34454			;
    Z34410: MOV	#001750, R2		; 1000.
    Z34414: CALL	Z34454			;
    Z34420: MOV	#000144, R2		; 100.
    Z34424: CALL	Z34454			;
    Z34430: MOV	#000012, R2		; 10.
    Z34434: CALL	Z34454			;
    Z34440: ADD	#000060, R3		; '0'
    Z34444: MOVB	R3, (R1)+		;
    Z34446: MOVB	#000060, (R1)+		;
    Z34452: RETURN				;
    Z34454: MOV	#000060, R0		; '0'
    Z34460: SUB	R2, R3			;
    Z34462: BLO	Z34470			;
    Z34464: INC    	R0			;
    Z34466: BR     	Z34460			;
    Z34470: ADD	R2, R3			;
    Z34472: MOVB	R0, (R1)+		; копируем в экран план
    Z34474: RETURN
    Последний раз редактировалось nzeemin; 05.06.2019 в 11:46.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Для комплекта ещё - вариант из Stop the Express для MS-0515.
    Вариант из Stop the Express занимает 31 слово (в десятичной системе счисления).
    Я делал быстрый (без CALLов) вариант со степенями 10. Из полезного: не печатает лидирующие нули, добавляет в конец символ конца строки.
    Размер 25 слов:
    Код:
    ; Fast DECIMAL by Manwe
    ; input: R0 - number
    ;        R1 - pointer to output text string
    
    DECIM:	MOV #TEN,R5	; table address
    1:	CMP (R5)+,R0	; skip leading zeros
    	BHI 1		; branch if higher, for 16-bit not signed
    	MOV -(R5),R3
    	BEQ 4		; if less then 10
    
    2:	MOV #57,R4	; 0 symbol in ASCII codepage - 1
    3:	INC R4		; count digits
    	SUB R3,R0
    	BHIS 3		; branch if higher or same, for 16-bit not signed
    	MOVB R4,(R1)+	; print R4
    
    	ADD (R5)+,R0
    	MOV (R5),R3
    	BNE 2
    
    4:	ADD #60,R0	; 0 symbol in ASCII codepage
    	MOVB R0,(R1)+	; print R0
    	CLRB (R1)	; write end marker of the text string
    	RET
    
    TEN:	.WORD 10000.,1000.,100.,10.,0
    Последний раз редактировалось Manwe; 05.06.2019 в 18:21.
    manwe.pdp-11.ru

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. написание простейшей демки для тренировки
    от AAA в разделе Для начинающих
    Ответов: 121
    Последнее: 22.05.2012, 18:06
  2. написание музыки на Dendy.
    от s1moncpu в разделе Nintendo
    Ответов: 27
    Последнее: 25.05.2007, 05:34
  3. написание музыки на Dendy.
    от s1moncpu в разделе Музыка
    Ответов: 2
    Последнее: 16.05.2007, 10:59
  4. Тестирование программ
    от Vitamin в разделе Программирование
    Ответов: 5
    Последнее: 23.01.2005, 21:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •