diff --git a/doc/asm.html b/doc/asm.html
index 392af174c2..3e03c548fd 100644
--- a/doc/asm.html
+++ b/doc/asm.html
@@ -780,6 +780,64 @@ mode as on the x86, but the only scale allowed is 1.
+
+The registers R10 and R11 are reserved.
+The assembler uses them to hold temporary values when assembling some instructions.
+
+R13 points to the g (goroutine) structure.
+This register must be referred to as g; the name R13 is not recognized.
+
+R15 points to the stack frame and should typically only be accessed using the
+virtual registers SP and FP.
+
+Load- and store-multiple instructions operate on a range of registers.
+The range of registers is specified by a start register and an end register.
+For example, LMG (R9), R5, R7 would load
+R5, R6 and R7 with the 64-bit values at
+0(R9), 8(R9) and 16(R9) respectively.
+
+Storage-and-storage instructions such as MVC and XC are written
+with the length as the first argument.
+For example, XC $8, (R9), (R9) would clear
+eight bytes at the address specified in R9.
+
+If a vector instruction takes a length or an index as an argument then it will be the
+first argument.
+For example, VLEIF $1, $16, V2 will load
+the value sixteen into index one of V2.
+Care should be taken when using vector instructions to ensure that they are available at
+runtime.
+To use vector instructions a machine must have both the vector facility (bit 129 in the
+facility list) and kernel support.
+Without kernel support a vector instruction will have no effect (it will be equivalent
+to a NOP instruction).
+
+Addressing modes: +
+ +(R5)(R6*1): The location at R5 plus R6.
+It is a scaled mode as on the x86, but the only scale allowed is 1.
+