Написал простенький тест команды RORB:
Скрытый текст
Код:
.TITLE RORB -- RORB TEST
.IDENT /V01.00/
.MCALL DIR$,EXIT$S,QIOW$,SVTK$S
QIOW: QIOW$ IO.WVB,5,1,,,,<TEXT,TEXTL,40>
SSTV: .WORD 0,0,V.BPT
SSTL = <.-SSTV>/2
START:: SVTK$S #SSTV,#SSTL ;SET SST VECTOR
CLR R0 ;SET INITIAL VALUE
MOV #18.,R3 ;SET SHIFT COUNT
SEC ;SET CARRY
BPT ;PRINT VALUES
10$: RORB R0 ;ROTATE RIGHT
BPT ;PRINT VALUE
SOB R3,10$ ;LOOP
EXIT$S
V.BPT: MOV R0,-(SP) ;SAVE R0
MOV R0,R1 ;SET R0 VALUE
MOV #VR0,R0 ;SET BUFFER ADDRESS
MOV PC,R2 ;SET LEADING ZEROS FLAG
CALL $CBOMG ;CONVERT TO ASCII
MOV #VPS,R0 ;SET BUFFER ADDRESS
MOV 4(SP),R1 ;SET PS VALUE
MOV PC,R2 ;SET LEADING ZEROS FLAG
CALL $CBOMG ;CONVERT TO ASCII
MOV (SP)+,R0 ;RESTORE R0
DIR$ #QIOW ;PRINT TO TERMINAL
RTI
TEXT: .ASCII /R0=/
VR0: .ASCII /XXXXXX, PS=/
VPS: .ASCII /XXXXXX/
TEXTL = .-TEXT
.END START
[свернуть]
Результат под E11:
Код:
>RUN RORB
R0=000000, PS=170001
R0=000200, PS=170010
R0=000100, PS=170000
R0=000040, PS=170000
R0=000020, PS=170000
R0=000010, PS=170000
R0=000004, PS=170000
R0=000002, PS=170000
R0=000001, PS=170000
R0=000000, PS=170007
R0=000200, PS=170010
R0=000100, PS=170000
R0=000040, PS=170000
R0=000020, PS=170000
R0=000010, PS=170000
R0=000004, PS=170000
R0=000002, PS=170000
R0=000001, PS=170000
R0=000000, PS=170007
>
Результат под SimH:
Код:
>RUN RORB
R0=000000, PS=170001
R0=000200, PS=170012
R0=000100, PS=170000
R0=000040, PS=170000
R0=000020, PS=170000
R0=000010, PS=170000
R0=000004, PS=170000
R0=000002, PS=170000
R0=000001, PS=170000
R0=000000, PS=170007
R0=000200, PS=170012
R0=000100, PS=170000
R0=000040, PS=170000
R0=000020, PS=170000
R0=000010, PS=170000
R0=000004, PS=170000
R0=000002, PS=170000
R0=000001, PS=170000
R0=000000, PS=170007
>
Из теста видно, что когда вдвигается старший бит в SimH устанавливается флаг переполнения, в E11 этого не выполняется. Для команды ROR флаг выставляется и там и там.
---------- Post added at 12:42 ---------- Previous post was at 12:09 ----------
А на MIM все правильно выполняется:
Код:
>RUN RORB
R0=000000, PS=170001
R0=000200, PS=170012
R0=000100, PS=170000
R0=000040, PS=170000
R0=000020, PS=170000
R0=000010, PS=170000
R0=000004, PS=170000
R0=000002, PS=170000
R0=000001, PS=170000
R0=000000, PS=170007
R0=000200, PS=170012
R0=000100, PS=170000
R0=000040, PS=170000
R0=000020, PS=170000
R0=000010, PS=170000
R0=000004, PS=170000
R0=000002, PS=170000
R0=000001, PS=170000
R0=000000, PS=170007
>
там коммерческий вариант старой версии какой-то вроде