「8+5=13=0Dh」です。その後に30hを加えると3Dhになり、これは「=」を意味します。したがって13とは表示せずに、「=」をディスプレイに表示します。これでは足し算の意味がないので何とかしたいですね。「ADD」の後に、「AAA」という命令を実行すると、AH=01、AL=03という風に補正してくれます。
「AAA」という命令はオペランドをとりません。ALにのみ動作してくれます。
START: mov ah,0 ;AH <=00h mov al,DATA1 ;AL <=08h add al,DATA2 ;AL <=0Dh aaa ;AH <=01h, AL <=03h add ax,3030h ;AH <='1' AL <='3' mov dl,ah ;DL <='1' mov dh,al ;DH <='3' mov ah,2 int 21h ;'1'表示 mov ah,2 mov dl,dh ;DL <='3' int 21h ;'3'表示 mov ax,4c00h int 21h ;終了 DATA1 byte 8 DATA2 byte 3