ディレクティブ SBYTE, SWORD, SDWORD, REAL4, REAL8, REAL10
『高級言語プログラマのためのアセンブラ入門』 185ページあたり
CODE SEGMENT ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax ;-----------------------codeここから mov al,127 call LCMP mov al,DB_M128 ; -128 call LCMP mov al,DB_M129 ; -127 call LCMP jmp LEND LCMP: cmp al,DB_M128 ; -128 jg LM mov dx,OFFSET MSG2 jmp OUT_MSG LM: mov dx,OFFSET MSG1 OUT_MSG: mov ah,09H int 21H ret LEND: ;-----------------------codeここまで mov ah,4CH int 21H CODE ENDS DATA SEGMENT ;-----------------------dataここから DB_M128 SBYTE -128 DB_M129 SBYTE -129 MSG1 DB "condition match",0DH,0AH,'$' MSG2 DB "condition not match",0DH,0AH,'$' ;-----------------------dataここまで DATA ENDS STK SEGMENT STACK DB 100H DUP(?) STK ENDS END START
で、
condition match condition not match condition match
これは良くない例で、SBYTE を BYTE にしても多分同じように動いてしまう。
そもそも「.IF ディレクティブ」などで符号あり比較をやるためにあるのか???