例6.4 假设有二个字变量word1和word2,编写程序段实现交换其值的功能。

解:

方法1:用汇编语言指令简单“直译”上面的 交换数据方法

DATA1 SEGMENT
word1 DW ?
word2 DW ?
temp DW ?
DATA1 ENDS
CODE1 SEGMENT
MOV AX, word1
MOV temp, AX ;上二语句实现语句“temp=word1”
MOV AX, word2
MOV word1, AX ;上二语句实现语句“word1=word2”
MOV AX, temp
MOV word2, AX ;上二语句实现语句“word2=temp”
CODE1 ENDS

这种方法虽然也能完成功能,但显然其不能充分利用汇编语言的特点,程序效率很低。

方法2:用汇编语言指令的特点来直接编译

DATA1 SEGMENT
word1 DW ?
word2 DW ?
DATA1 ENDS
CODE1 SEGMENT
MOV AX, word1
XCHG AX, word2
MOV word1, AX ;能XCHG word1, word2来代替这三条指令吗?
CODE1 ENDS

该方法充分利用了汇编语言的特点,不仅省去了中间变量temp的定义,而且程序的效率也提高了。