⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 math.lib

📁 一个C style Assembler的source code
💻 LIB
字号:
;;; ARITHMETIC: Integer arithmetic routines.ClearX:   ClearLoop:      mov @R0, #0      inc R0   djnz R2, ClearLoopretIncX:   setb CCarryX:   CarryLoop:      mov A, @R0       addc A, #0      mov @R0, A      inc R0   djnz R2, CarryLoopretCopyX:   CopyLoop:      mov A, @R1      inc R1      mov @R0, A      inc R0   djnz R2, CopyLoopretSubtractX:   clr C   SubtractLoop:      mov A, @R0      subb A, @R1      inc R1      mov @R0, A      inc R0   djnz R2, SubtractLoopretSizeX equ 14h ;;; 1 byteSizeY equ 15h ;;; 1 byteArgX  equ 16h ;;; 1 byteArgY  equ 17h ;;; 1 byteArgZ  equ 18h ;;; 1 byteMultiplyX: ;;; The new multiplication algorithm R5 is the carry.   mov R5, #0MultiplyLoop:   mov R0, ArgX   mov A, @R0   mov R2, A   inc ArgX      ;;; R2 = *ArgX++;   mov R0, ArgZ   inc ArgZ      ;;; R0 = ArgZ++;   mov R1, ArgY   mov R3, SizeY   mov R4, #0   jz BreakCarry   MulNibble:      mov A, R2      mov B, @R1      inc R1      mul AB     ;;; B:A = *R1++ * R2;      add A, R4      xch A, B      addc A, #0      xch A, B   ;;; B:A += R4;      add A, @R0      mov @R0, A      inc R0      mov A, B      addc A, #0      mov R4, A  ;;; R4:*R0++ = B:A + *R0;   djnz R3, MulNibble   mov R3, SizeX   mov A, R4   CarryBy1:      add A, @R0      mov @R0, A      inc R0     ;;; C:*R0++ += *R0 + A;   jnc BreakCarry      mov A, #1   djnz R3, CarryBy1   inc R5BreakCarry:djnz SizeX, MultiplyLoopret

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -