管理员
|
楼主#
更多
发布于:2012-09-10 18:56
![](http://www.atcpu.com/themes/extres/ithread/images/2A.gif) | | ![](http://www.atcpu.com/themes/extres/ithread/images/2C.gif) | ![](http://www.atcpu.com/themes/extres/ithread/images/2.gif) | 假设有二个字变量 word1和 word2,编写程序段实现交换其值的功能。解: 方法1:用汇编语言指令简单“直译”上面的 交换数据方法 DATA1SEGMENT … word1DW ? word2DW ? tempDW ? … DATA1ENDS CODE1SEGMENT … MOVAX, word1 MOVtemp, AX;上二语句实现语句“temp= word1” MOVAX, word2 MOV word1, AX;上二语句实现语句“ word1= word2” MOVAX, temp MOV word2, AX;上二语句实现语句“ word2=temp” … CODE1ENDS 这种方法虽然也能完成功能,但显然其不能充分利用汇编语言的特点,程序效率很低。 方法2:用汇编语言指令的特点来直接编译 DATA1SEGMENT … word1DW ? word2DW ? … DATA1ENDS CODE1SEGMENT … MOVAX, word1 XCHGAX, word2 MOV word1, AX;能XCHG word1, word2来代替这三条指令吗? … CODE1ENDS 该方法充分利用了汇编语言的特点,不仅省去了中间变量temp的定义,而且程序的效率也提高了。
| | ![](http://www.atcpu.com/themes/extres/ithread/images/2G.gif) | | ![](http://www.atcpu.com/themes/extres/ithread/images/2I.gif) |
|