WEB开发网
开发学院软件开发汇编语言 汇编语言的艺术-基本认识(一) 阅读

汇编语言的艺术-基本认识(一)

 2007-04-25 09:30:11 来源:WEB开发网   
核心提示:如源存器为 1234H,则此源存器在系统中由0算起的地址为:17234H,汇编语言的艺术-基本认识(一)(3), 应注意者,各种以「器」定名的暂存器,选择经常需要应用的资料,置放其中,皆有限用的段,切勿混用

如源存器为 1234H,则此源存器在系统中由0算起的地址为:17234H。
应注意者,各种以「器」定名的暂存器,皆有限用的段,切勿混用。
凡定名为「值」者,皆为不能用来供程式写作的暂存器。如堆栈值(SP)系指示堆栈所在位置;旗号值(FLAG)表示旗号标志的情况;执行值(IP)则代表程式当前所执行的地址。这些暂存器值并非不能改变,但对技巧尚不够纯熟者,最好保持原值,不要妄动。
经常使用的「器」有两种,一以16位元为单位,如栈用器、源存器及终存器; 另一种则具有两个分别称「高位」及「低位」、各有8位元,可单独使用,也可合并为16位元的暂存器AX,BX,CX,DX。
暂存器通常作为容器用,但有些多用为记忆区之定址,以便将其中贮存的资料取出应用。前者称为容器功能,可以作计算、逻辑处理等。后者称为定址功能,系供处理各「器」所定位址的资料用。由于8088 CPU的定址方式,受限于当初不成熟的设计理念,偏偏 IBM独具慧眼,选中了它,所谓城门失火,殃及池鱼,读者不得不多花点功夫,小心应付。
栈用器(BP)属于堆栈段的记忆位置,系提供给高阶语言结构使用,对组合语言来说,功能不大,但若善于运用,也不无价值。
源存器(SI)固定指向资料段,将源存器中的资料取出,所指的是取出资料段中的资料。设若
DS=2000H SI=1234H,则
SI中的1234H 系指系统中 2000H×16加上位址值 1234H。
不过,使用者不必去计算,只要知道是由资料段起,位址为1234H 即可。
终存器(DI)较为复杂,通常它是指向资料段,可是有几个指令涉及大量资料转移,需要由源存器搬到终存器。由于受限于分段的设计,为了便于段间应用,所以特别规定:在这种情况下终存器系指向特设段(ES)。也就是说,只能由资料段移向特设段。程式师可以先设定各段的段暂存器,再作转移。若要在同一段中作资料转移,则应使资料段=特设段。
一般用的暂存器,都可以分成两个8位元、各命名为高、低位暂存器,如:
累积器:AX 高位 AH ,低位 AL
兼用器:BX 高位 BH ,低位 BL
计数器:CX 高位 CH ,低位 CL
资料器:DX 高位 DH ,低位 DL
其中累积器的功能最强,可以做乘、除计算,AH尚有贮存旗号的特殊指令。尤其是从记忆区中取值或将值放进记忆区内时,效率最高,如 LODS , STOSW等。
由于其功能高,运用灵活,所以宜于打杂,千万不要赋与固定的使命。
兼用器则有一种重要的特性,它是一般用暂存器中,唯一能自记忆区中读取资料者(XLAT指令除外),所以作为「资料及定址转换」 (后文将专门介绍此一功能) 方便异常。
计数器常用作「回路」或次数的记录,也有专用的指令,除非不得已,或者计数用得不多,最好保留备用。
资料器功能最少,最好固定其用途,选择经常需要应用的资料,置放其中,以便发挥时间空间的最高效率。

上一页  1 2 3 

Tags:汇编语言 艺术 基本

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接