Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1.         cpu     ibm5100
  2.         page    0
  3.  
  4.         org     x'b00'
  5.  
  6.         halt                    ; mvm2 pc,pc
  7.  
  8.         nop                     ; move pc,pc
  9.  
  10.         move    r12,#x'55aa'    ; move r12,(pc)+ plus dw x'55aa'
  11.  
  12.         movb    r12,#x'5a'      ; emit r12,x'5a'
  13.  
  14.         lwi     r12,#x'55aa'    ; move r12,(pc)+ plus dw x'55aa'
  15.         lwi     r12,x'55aa'     ; move r12,(pc)+ plus dw x'55aa'
  16.  
  17.         and     r12,#x'55'      ; clri r12,x'55'!x'ff'
  18.         or      r12,#x'55'      ; seti r12,x'55'
  19.  
  20.         bra     *               ; like HALT
  21.         expect  1371
  22.         bra     *+2             ; would result in zero
  23.         endexpect
  24.         bra     *+258           ; just allowed
  25.         expect  1370
  26.         bra     *+260           ; not any more allowed
  27.         endexpect
  28.         bra     *-254           ; just allowed
  29.         expect  1370
  30.         bra     *-256           ; not any more allowed
  31.         endexpect
  32.  
  33.         expect  1351            ; cannot jump to odd addresses
  34.         bra     *+127
  35.         endexpect
  36.  
  37.         jmp     x'1234'         ; ldhi pc,pc,2 ; dw x'1234'
  38.         lwi     r0,#x'1234'
  39.  
  40.         expect  1351            ; cannot jump to odd addresses
  41.         jmp     x'1235'
  42.         endexpect
  43.  
  44.         jmp     *+10            ; bra *+10
  45.  
  46.         jmp     >*+10           ; ldhi pc,pc,2 ; dw *+10 (forced absolute)
  47.  
  48.         jmp     (x'ac')         ; ldhd pc,x'ac'
  49.         move    r0,x'ac'
  50.  
  51.         jmp     (r5)            ; ldhi pc,r5
  52.         move    r0,(r5)
  53.  
  54.         jmp     r5              ; move pc,r5
  55.         move    r0,r5
  56.  
  57.         jmp     (r15)-          ; move pc,(r15)-
  58.         move    r0,(r15)-
  59.  
  60.         call    x'1234',r2      ; mvp2 r2,pc ; ldhi pc,r2,2 ; dw x'1234'
  61.         inc2    r2,r0
  62.         move    r0,(r2)+
  63.         dw      x'1234'
  64.  
  65.         expect  1351            ; cannot jump to odd addresses
  66.         call    x'1235',r2
  67.         endexpect
  68.  
  69.         call    (r5),r2         ; mvp2 r2,pc ; ldhi pc,r5
  70.         inc2    r2,r0
  71.         move    r0,(r5)
  72.  
  73.         call    r5,r2           ; mvp2 r2,pc ; move pc,r5
  74.         inc2    r2,r0
  75.         move    r0,r5
  76.  
  77.         rcall   *+100,r2        ; mvp2 r2,pc ; addi pc,(100-(*+4)) with * being the address of the first micro-instruction!
  78.         inc2    r2,r0
  79.         bra     *+98
  80.  
  81.         ret     r2              ; move pc,r2
  82.         move    r0,r2
  83.