你的基本算法没有错。
程序中的错误有两点:
没有程序的入口。在第一条指令前应当加一个标号(比如START),在END语句中要加上这个标号。
你的程序缺少结束程序、返回DOS的代码。应当在CODE ENDS前加上两行:
MOV AH, 4CH
INT 21H