org 100h
start:
mov ax,0xb800
mov ds,ax
mov [0x00],0x41 ;字符A
mov [0x01],0x04 ;颜色为红色
mov [0x02],'s'
mov [0x03],0x14
mov [0x04],'s'
mov [0x05],0x24
jmp_e:
mov [0x06],'e'
mov [0x07],0x34
mov [0x08],'m'
mov [0x09],0x44
mov [0x0a],'b'
mov [0x0b],0x54
jmp_l:
mov [0x0c],'l'
mov [0x0d],0x64
mov [0x0e],'y'
mov [0x1f],0x74
mov [0x10],'.'
mov [0x11],0x84
jmp 0100:0000+jmp_e
注意这里的jmp_e和jmp_l标号,程序执行到最后一行jmp 0100:0000+jmp_e执行后会跳转到jmp_e的地方,同理也可以跳转到别的地方。
另一种写法是定义地址到bx中,不过这种写法只有在nasm中才有效,masm是直接报错的。
mov bx,0100:0000+jmp_e
jmp bx
在masm中需要写成这种样子
mov bx,offset jmp_e
jmp bx
还有一种写法最简单,就是可以直接jmp jmp_e。推荐这种写法。