;Умножение без учета знака двух 16- битных операндов
move MCNT, #21h ; CLD=1, SUS=1 (без знака)
move MA, #0FFFh ; MC2:0=0000_0000_0000h
move MB, #1001h ; MC1R:MC0R= 00FF_FFFFh
; MC2:0=0000_00FF_FFFFh
; Умножение с учетом знака двух 16- битных операндов
move MCNT, #20h ; CLD=1, SUS=0 (со знаком)
move MA, #F001h ; MC2:0=0000_0000_0000h
move MB, #1001h ; MC1R:MC0R= FF00_0001h
; MC2:0=FFFF_FF00_0001h
;Умножение с накоплением без учета знака двух 16- битных операндов
; MC2:0=0000_0100_0001h
move MCNT, #03h ; MMAC=1, SUS=1 (без знака)
move MA, #0FFFh ;
move MB, #1001h ;
; MC1R:MC0R=02FF_FFFFh
; MC2:0=0000_0200_0000h
; Умножение с накоплением с учетом знака двух 16- битных операндов
; MC2:0=0000_0100_0001h
move MCNT, #02h ; SUS=0 (со знаком)
move MA, #F001h ;
move MB, #1001h ;
; MC1R:MC0R= FF00_0003h
; MC2:0=0000_0000_0002h
;Умножение с вычитанием без учета знака двух 16- битных операндов
; MC2:0=0000_0100_0001h
move MCNT, #07h ; MMAC=1, MSUB=1, SUS=1 (без знака)
move MA, #0FFFh ;
move MB, #1001h ;
; MC1R:MC0R=FF00_0003h
; MC2:0=0000_0000_0002h
; Умножение с вычитанием с учетом знака двух 16- битных операндов
; MC2:0=0000_0100_0001h
move MCNT, #06h ; MMAC=1, MSUB=1, SUS=0 (со знаком)
move MA, #F001h ;
move MB, #1001h ;
; MC1R:MC0R= 02FF_FFFFh
; MC2:0=0000_0200_0000h
; Умножение с инверсией с учетом знака двух 16- битных операндов
move MCNT, #24h ; CLD=1, MSUB=1, SUS=0 (со знаком)
move MA, #F001h ; MC2:0=0000_0000_0000h
move MB, #1001h ; MC1R:MC0R =00FF_FFFFh
; MC2:0=0000_00FF_FFFFh
|