Hi Dave, > FYI, I see an instruction 'jeq' in used in src64/io.l, but I don't see > it described in doc64/asm. > > Hm, for that matter, I don't see 'jne' or 'jgt' either. Maybe I > shouldn't expect to find 'jeq'?
That's right: 'jeq' is just an alias for 'jz', as 'jlt' is one for 'jc'. You can find the complete list in "src64/lib/asm.l": (de *Transfers call jmp jz jeq jnz jne js jns jsz jnsz jc jlt jnc jge jcz jle jncz jgt ) (de *Conditions (T jmp . jmp) (z jz . jnz) (nz jnz . jz) (s js . jns) (ns jns . js) (sz jsz . jnsz) (nsz jnsz . jsz) (c jc . jnc) (nc jnc . jc) (cz jcz . jncz) (ncz jncz . jcz) (eq jz . jnz) (ne jnz . jz) (lt jc . jnc) (le jcz . jncz) (gt jncz . jcz) (ge jnc . jc) ) > I guess ^@ is never valid inside a Transient Symbol? > > : "^@" > Bad input '@' Correct. Ctrl-@ is ASCII NULL, and is reserved as an end-of-name marker in symbol names (just like in C). > What does cmp do to the flags? > cmp dst src # Compare 'dst' with 'src' [zsc] * The zero-flag is set if 'dst' and 'src' are equal * The sign-flag is set if the signed two-complement difference ('dst' minus 'src') is negative * The carry-flag is set if the unsigned difference ('dst' minus 'src') results in carry out of the most significant bit > Within the flag notation [---] in doc64/asm, What is the difference > between . and -? I see that _ is clear. '-' Flag is not modified '.' Value of the flag is undefined '_' Flag is cleared For instructions where [...] isn't specified yet in the docs, we may assume "don't care" for now. ♪♫ Alex -- UNSUBSCRIBE: mailto:firstname.lastname@example.org?subject=Unsubscribe