Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ukma!husc6!m2c!wpi!wpi.wpi.edu!jhallen From: jhallen@wpi.wpi.edu (Joseph H Allen) Newsgroups: comp.arch Subject: Intel Assembly Language (Yuk!) Message-ID: <993@wpi.wpi.edu> Date: 24 Feb 89 11:01:50 GMT Sender: jhallen@wpi.wpi.edu Reply-To: jhallen@wpi.wpi.edu (Joseph H Allen) Organization: Worcester Polytechnic Institute, Worcester, Mass. Lines: 53 Warning: This is a (silly) flame OK, so who's the one responsible for the Intel/Microsoft instruction set mnemonics and assembly language? They're disgusting! 1 - Why the '0f8h' constant method instead of the much nicer '$f8' method? 2 - What's with this 'OFFSET label' junk? It should be written '#label' (or #label-segment to get segment offset) 3 - Every Motorola programmer knows that the proper comment introducer is '*' not ';' 4 - Why 'mov' when 'ld' implies right to left? 5 - Why exactly is the assembly language structured/object oriented? If I had written the assembler, this module: IGROUP group _TEXT assume cs:IGROUP _TEXT segment byte public 'CODE' PUBLIC _getone ; function to return next key pressed or -1 if none _getone PROC near mov ah,6 ; call no. 6 mov dl,0ffh ; indicate that this is a read int 21h ; call dos mov ah,0 ; zero upper half jnz ex ; branch if got a key mov ax,0ffffh ; load -1 ex: ret _getone ENDP _TEXT ends end - - - - Would be written this way: segment CODE public _getone * Function to return next key pressed or -1 if none _getone ld ah,#6 Call No. 6 ld dl,#$ff indicate read, not write swi $21 call dos ld ah,#0 make ax clean return register bne ex branch if no key ld ax,#$ffff indicate no key ex rts