When evaluated, this vm instruction subtracts the argument word numeric value to the source word numeric value. The word numeric result is placed in the target word as a Number data type. Both words must be of numeric types. Conversion between different numeric types is automatic. The result will be returned as a Number data type. This instruction may return an Error value. After the operation, the Instruction Pointer is promoted. The operation of this vm instruction is expressed in the following C expression:



(vmsubn argument source target)

Name Format AIS Types
argument regoffset (word:numeric)
source regoffset (word:numeric)
target regoffset (word:double)



Here are a number of links to Lambda coding examples which contain this instruction in various use cases.

			(defun vmsubn_test( arg1 arg2 )
    			(vmsubn arg1 arg2 c)
    			(vmreturn c)
			(writeln(vmsubn_test 1.1 1.023))


Keyword Links

Here are a number of links to this instruction by related keywords.

[...under construction ]


Instruction Type

Here are a number of links to this instructions of this same type.

vmadd vmaddi vmaddn vmand
vmapply vmargcount vmargfetch vmcadd
vmcall vmcallarg vmcdiv vmcmul
vmcsub vmdebugger vmdiv vmdivi
vmdivn vmdivr vmdivri vmiadd
vmiand vmiandb vmidiv vmidivr
vmimul vmior vmiorb vmisub
vmixor vmixorb vmjump vmjumpcc
vmmove vmmovei vmmoven vmmul
vmmuli vmmuln vmnadd vmndiv
vmndivr vmnmul vmnop vmnsub
vmonerror vmopt vmor vmpop
vmpush vmref vmrefbitvector vmrefbytevector
vmrefdickey vmrefdicvalue vmrefdirkey vmrefdirvalue
vmreffltvector vmrefintvector vmreflongvector vmrefmatrix
vmrefnummatrix vmrefnumvector vmrefobjvector vmrefpcdvector
vmrefshortvector vmrefstring vmrefstrkey vmrefstrvalue
vmrefsymbol vmreftext vmrefvector vmreturn
vmself vmsend vmset vmsetbitvector
vmsetbytevector vmsetdickey vmsetdicvalue vmsetdirkey
vmsetdirvalue vmsetfltvector vmsetintvector vmsetlongvector
vmsetmatrix vmsetnummatrix vmsetnumvector vmsetobjvector
vmsetpcdvector vmsetshortvector vmsetstring vmsetstrkey
vmsetstrvalue vmsetvector vmshl vmshr
vmsmovei vmsub vmsubi vmsubn
vmtestescape vmxor


Argument Types

Here are a number of links which are related to this instructions .

vmadd vmaddi vmaddn vmdiv
vmdivi vmdivn vmdivr vmdivri
vmjumpcc vmmul vmmuli vmmuln
vmnadd vmnatAddNumber vmnatDivNumber vmnatDivrNumber
vmnatJumpCCNumber vmnatLoadFloat vmnatLoadNumber vmnatMulNumber
vmnatSaveFloat vmnatSaveNumber vmnatSubNumber vmndiv
vmndivr vmnmul vmnsub vmregAbsNumber
vmregAddNumber vmregCosNumber vmregDivNumber vmregDivrNumber
vmregInteger vmregJumpCCNumber vmregLoadNumber vmregLogNumber
vmregMoveNumber vmregMulNumber vmregNumber vmregPwrNumber
vmregRefNumber vmregSaveNumber vmregSaveTail vmregSetFloat
vmregSetIntImmediate vmregSetNumber vmregSetXFloat vmregSetXNumber
vmregSinNumber vmregSqrtNumber vmregSubNumber vmregTanNumber
vmsub vmsubi vmsubn vmvecNumScalar
vmvecNumVector vmvecPop vmvecPopNumber vmvecPush
vmvecPushNumber vmvecSwapCC


Virtual Machine Instructions

AIS Lambdas are designed to be write-once-run-anywhere executable objects. This is accomplished via the virtual machine concept of software Lambda execution. Lambda virtual machines are designed to be mapped onto the actual host microchip at the server location, providing faithful Lambda execution wherever the Lambda may travel on the Internet. There are currently several virtual machines operating within Analytic Information Server. The DRM virtual machine uses a Dynamically typed Register Machine model to provide portable Lambda execution from high level dynamically typed instructions all the way to super fast microchip-level register execution. The DRM virtual machine runs in emulation mode during the testing and debug phases of Lambda development, and there is an AIS Lambda debugger available for Lambdas running on this virtual machine. During the final release phases of Lambda development, DRM virtual machine Lambdas are automatically converted to the NATIVE virtual machine on the host computer, using the just-in-time compiler. The NATIVE virtual machine is a faithful machine language translation of the execution rules in the DRM virtual machine onto the actual host microchip at the server location. NATIVE virtual machine execution runs at microchip-level execution speeds.

Analytic Information Server (AIS)

AIS Component Systems

  • Smartbase Engine
  • QT C++ Libraries
  • MySQL Relational Database
  • AIS Lisp Libraries
  • Rapid Analytic Demo IDE