;=================================================== ; Assembly option file for Chart generation ; i8086/88 series ;=================================================== ; Specific source analysis mode ; You can select 3 type of mode (mixed selection available) ; /mode = macro ------ Structured Macro mode (GAIO oroginal macro) ; comment ---- Feature comment mode ; operation -- Mnimonic mode ;=============================================================== ;/mode = operation ;=============================================================== ; Module split mode ; /module = mcall --- Splits the module with called label within ; the file ; = mret ---- Splits the module with label after return ; mnimonic which is not called from others ;=============================================================== /module=mcall mret ;=============================================================== ; Splits the process ; Specific the split mode of assembly source to generated chart ; box. ; /proc = mode ; comment --- Splits the box with each comment ; step --- Splits the box with each mnimonic ; blank --- Splits the box with each blank in the source code ; mark --- Splits the box with the area specified with feature ; comment ". ; ;=============================================================== /proc=blank ;=============================================================== ; Specific branch label ; ; /label = Label statement style1 Label statement style2.. ; ; label1 --- Label name: (Label name: except equ..) ; label2 --- Label name equ * ; label3 --- Label name equ $ ; label4 --- Label name: equ * ; label5 --- Label name: equ $ ; label6 --- Label name (Recognize the first letter as label) ; ; Default style labe11, label2, label3 ;=============================================================== /label = label1 label2 ;=============================================================== ; Define section other than code (end of code section) ; This definition separates code section and other section ; /dsect=mnimonic operand.. ; Ex.)/dsect = sect data dumy stak ; /dsect = end ; /dsect = ends ; /dsect = dseg ; ; /dsect = .text ; ;=============================================================== /dsect = end /dsect = sect comm ;=============================================================== ; Define labelname Modifier ; The defined Word of this will ignore when analyse the ; operand. ; /nonlabelword = Modifier1 Modifier2 .. ; ;=============================================================== /nonlabelword = type /nonlabelword = length /nonlabelword = size /nonlabelword = offset /nonlabelword = seg /nonlabelword = byte ptr /nonlabelword = tbyte ptr /nonlabelword = word ptr /nonlabelword = dword ptr /nonlabelword = qword ptr /nonlabelword = far ptr /nonlabelword = near ptr ;=============================================================== ; Define data directives (control branch label) ; For discriminate data label from branch label ; /data = assembler directives ; Ex.) /data = db ; /data = dw ; /data = ds ; /data = FLOAT ; /data = DFLOAT ; ;=============================================================== /data = db /data = dw /data = ds /data = dsb /data = dsw /data = dq /data = dd /data = dt ;=============================================================== ; Define global directives ; ; /global = mnimonic ;=============================================================== /global=global ;=============================================================== ; Define non-condition jump mnimonic ; ; /goto = mnimonic /status /delay = n ; ; Specific delay slot number to "n" ;=============================================================== /goto = jmp.x /goto = jmp /goto = jmpf ;=============================================================== ; Define condition jump mnimonic ; ; /gotoc = mnimonic condition operand condition information ; /delay = n ; ; Specific delay slot number to "n" ;=============================================================== /gotoc = ja /hi /gotoc = jnbe /hi /gotoc = jae /hs /gotoc = jnb /hs /gotoc = jb /LO /gotoc = jnae /LO /gotoc = jbe /LS /gotoc = jna /LS /gotoc = je /z /gotoc = jz /z /gotoc = jg /gt /gotoc = jnle /gt /gotoc = jge /ge /gotoc = jnl /ge /gotoc = jl /lt /gotoc = jnge /lt /gotoc = jle /le /gotoc = jng /le /gotoc = jne /ne /gotoc = jnz /ne /gotoc = jno /NV /gotoc = jnp /gotoc = jpo /gotoc = jns /PL /gotoc = jo /V /gotoc = jp /gotoc = jpe /gotoc = js /N /gotoc = ja.x /hi /gotoc = jnbe.x /hi /gotoc = jae.x /hs /gotoc = jnb.x /hs /gotoc = jb.x /LO /gotoc = jnae.x /LO /gotoc = jbe.x /LS /gotoc = jna.x /LS /gotoc = je.x /z /gotoc = jz.x /z /gotoc = jg.x /gt /gotoc = jnle.x /gt /gotoc = jge.x /ge /gotoc = jnl.x /ge /gotoc = jl.x /lt /gotoc = jnge.x /lt /gotoc = jle.x /le /gotoc = jng.x /le /gotoc = jne.x /ne /gotoc = jnz.x /ne /gotoc = jno.x /NV /gotoc = jnp.x /gotoc = jpo.x /gotoc = jns.x /PL /gotoc = jo.x /V /gotoc = jp.x /gotoc = jpe.x /gotoc = js.x /N ;=============================================================== ; Define comparison condition jump ; Can define bit branch and counter ; /cmpgoto = mnimonic condition operand ; /operand = number of operand ; /true = "Condition comment when true" ; /false = "Condition comment when false" ; /label = "Label operand" ; /delay = n ; ; Specific delay slot number to "n" ;=============================================================== /cmpgoto = jcxz /true="CX==0" /false="CX!=0" /cmpgoto = jcxz.x /true="CX==0" /false="CX!=0" /cmpgoto = loop /true="CX = CX -1 / CX != 0" /false="CX = CX -1 / CX == 0" /cmpgoto = loope /true="CX = CX -1 / CX != 0 && ZF == 1" /false="CX = CX -1 / CX == 0 || ZF == 0" /cmpgoto = loopz /true="CX = CX -1 / CX != 0 && ZF == 1" /false="CX = CX -1 / CX == 0 || ZF == 0" /cmpgoto = loopne /true="CX = CX -1 / CX != 0 && ZF == 0" /false="CX = CX -1 / CX == 0 || ZF == 1" /cmpgoto = loopnz /true="CX = CX -1 / CX != 0 && ZF == 0" /false="CX = CX -1 / CX == 0 || ZF == 1" ;=============================================================== ; Define sub-routine call mnimonic ; ; /call = "mnimonic" /status /delay = n ; ; Specific delay slot number to "n" ;=============================================================== /call = call /call = callf ;=============================================================== ; Define return mnimonic ; ; /return = mnimonic /status /delay = n ; ; Specific delay slot number(0 to 9) to "n" ;=============================================================== /return = ret /return = retf /return = iret ;=============================================================== ; Define operation (compare) ; ; /comp = mnimonic /rev ; ; Changes the order between operand1 and operand2 with /rev ;=============================================================== /comp = cmp /comp = add /comp = adc /comp = sub /comp = sbb /comp = and /comp = or /comp = xor /comp = test