6.2 程序的基本结构举例
优质
小牛编辑
127浏览
2023-12-01
例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的定义,而且程序的效率也提高了。