《微机原理ppt课件.ppt》由会员分享,可在线阅读,更多相关《微机原理ppt课件.ppt(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第4 4章章资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值综合运算符综合运算符 包括:包括:PTR、THIS、HIGH、LOW、SHORTPTR:对名字或标号的类型属性进行设置对名字或标号的类型属性进行设置格式:格式:类型名类型名 PTR 变量变量/标号标号/地址表达式地址表达式其其中中类类型型名名可可以以是是BYTE、WORD、DWORD等等,或者是或者是NEAR、FAR。4.1.3:2.表达式与运算符表达式与运算符资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分
2、资金就是原有资金的时间价值PTR改变存储器地址操作数的改变存储器地址操作数的操作类型操作类型,但其,但其段地址和偏移地址不变。段地址和偏移地址不变。如:如:DATA1 DW 100 DUP(?)05A2001085DSMOV AL,DATA1MOV AL,BYTE PTR DATA1MOV AX,DATA1DATA14.1.3:2.表达式与运算符表达式与运算符资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值THIS:用用来来建建立立新新的的存存储储器器地地址址操操作作数数,但但不不分分配配存存储储单单元元。新新的的操操
3、作作数数类类型型在在THIS中中指指定定,而其段地址和偏移量就是汇编时的当前值。而其段地址和偏移量就是汇编时的当前值。格式:格式:THIS 类型类型一一般般通通过过EQU伪伪指指令令,为为符符号号名名赋赋予予一一个个THIS指定的类型指定的类型4.1.3:2.表达式与运算符表达式与运算符资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值DATA1 SEGMENTWBUFFER EQU THIS WORDBUFFER DB 12H,34H,00H,91H DATA1 ENDSCODE1 SEGMENT ASSUME CS:
4、CODE1,DS:DATA1START:MOV AX,DATA1 MOV DS,AX MOV AL,BUFFER MOV BX,WBUFFER CODE1 ENDS END START1234009185DSBUFFERWBUFFERAL=12HBX=3412H4.1.3:2.表达式与运算符表达式与运算符资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值SHORT:用来指定用来指定JMP指令中转移地址的属性指令中转移地址的属性HIGH与与LOW:对对数数值值或或地地址址表表达达式式分分离离出出高高字节或低字节。字节或低字
5、节。格式:格式:HIGH 表达式表达式LOW 表达式表达式例如:例如:CONST EQU 4455HMOV AH,HIGH CONST;AH=44HMOV AL,LOW CONST;AL=55H4.1.3:2.表达式与运算符表达式与运算符资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值运算符的优先级:运算符的优先级:当当一一个个表表达达式式中中有有多多个个运运算算符符时时,先先算算优优先先级级高高的的,再再算算低低的的,如如优优先先级级相相同同,则按从左至右的顺序运算。则按从左至右的顺序运算。参考课本参考课本P98表表
6、4-34.1.3:2.表达式与运算符表达式与运算符资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值4.2 汇编程序伪指令汇编程序伪指令伪伪指指令令(伪伪操操作作)不不生生成成机机器器代代码码,只只告告诉诉汇汇编编程序如何汇编程序如何汇编可可完完成成数数据据定定义义、存存储储区区分分配配、程程序序开开始始和和结结束束等功能。等功能。包括:包括:符号定义伪指令符号定义伪指令数据定义伪指令数据定义伪指令模块定义与连接伪指令模块定义与连接伪指令过程定义伪指令过程定义伪指令资金是运动的价值,资金的价值是随时间变化而变化的,是时间
7、的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值4.2.1 符号定义伪指令符号定义伪指令为常量或表达式赋符号名。为常量或表达式赋符号名。符号名符号名 EQU 表达式表达式 符号名符号名 =表达式:表达式:允许重复定义允许重复定义 符号名符号名 LABEL 类型类型 PURGE 符符号号1,符符号号2,符符号号N:解解除除定定义义资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值4.2.1 符号定义伪指令符号定义伪指令符号定义伪指令符号定义伪指令“EQU”:格式:格式:符号名符号名 EQU 数值表达式数
8、值表达式符号名符号名 EQU ;MASM 5.x不支持不支持更多例题参考课本更多例题参考课本P98【例题【例题4-8】如:如:DATA_PORT EQU 3F8H STAT_PORT EQU 3F8H+2 SEED EQU 10 FUNC EQU SEED*SEED+2*SEED+1 资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值4.2.1 符号定义伪指令符号定义伪指令符号定义伪指令符号定义伪指令“”:格式:格式:符号名符号名 数值表达式数值表达式它它与与EQU的的区区别别是是EQU不不能能重重复复定定义义符符号号名
9、名,而而“=”操作可以重复定义操作可以重复定义。例如:例如:X=7;等效于:;等效于:X equ 7X=X+5;“X EQU X+5”是错误的是错误的资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值如:如:X=3 Y=6 Y=Y*Y-X MOV AX,Y 通过上述操作,最后使通过上述操作,最后使Y=33,后面的,后面的MOV语语句中,当生成目标代码时将用句中,当生成目标代码时将用33取代取代Y。即。即 MOV AX,21H (33D)4.2.1 符号定义伪指令符号定义伪指令资金是运动的价值,资金的价值是随时间变化而变化
10、的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值LABEL:定定义义标标号号名名称称和和属属性性,它它和和下下一一条条指指令令共享存储器单元。共享存储器单元。格式:格式:符号名符号名 LABEL 类型类型例如:例如:BYTE-ARRAY LABEL BYTE WORD-ARRAY DW 100 DUP(?)MOV WORD-ARRAY,0 ;是把第一个字置为0。MOV BYTE-ARRAY,0 ;是把第一个字节置为0。4.2.1 符号定义伪指令符号定义伪指令资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原
11、有资金的时间价值4.2.2 数据定义伪指令数据定义伪指令 数据定义伪指令也称为定义变量的伪指令数据定义伪指令也称为定义变量的伪指令变变量量实实质质上上是是指指内内存存单单元元的的数数据据,虽虽然然内内存存单单元元地址不变,但其中存放的数据可以改变地址不变,但其中存放的数据可以改变变量需要事先定义才能使用变量需要事先定义才能使用数数据据定定义义伪伪指指令令为为变变量量申申请请固固定定长长度度的的存存储储空空间间,并并可可以以同同时时将将相相应应的的存存储储单单元元初初始始化化,也也可可以以只只分配存储空间而不存入确定的数值分配存储空间而不存入确定的数值定定义义后后的的变变量量可可以以利利用用变变
12、量量名名等等方方法法引引用用其其中中的的数据,即变量的数值数据,即变量的数值资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值定义数据的操作符有定义数据的操作符有:字节定义字节定义DB 字定义字定义DW 双字定义双字定义DD 四字定义四字定义DQ 十字节定义十字节定义DT 重复定义重复定义 m DUP(n)(重复(重复m次个数据次个数据 n)多个存储单元如果初值相同,可以用复制操作符多个存储单元如果初值相同,可以用复制操作符DUP进行定义:进行定义:重复次数重复次数 DUP(重复参数重复参数)4.2.2 数据定义伪指令数
13、据定义伪指令 资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值变量定义的汇编语言格式为:变量定义的汇编语言格式为:变量名变量名 伪指令伪指令 初值表初值表变变量量名名为为用用户户自自定定义义标标识识符符,表表示示初初值值表表首首元元素素的的逻逻辑辑地地址址,常常称称为为符符号号地地址址。变变量名也可以没有量名也可以没有初初值值表表是是用用逗逗号号分分隔隔的的参参数数,主主要要由由常常量量、数数值值表表达达式式或或“?”组组成成。其其中中“?”表表示未赋初值示未赋初值4.2.2 数据定义伪指令数据定义伪指令 资金是运动的
14、价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值4.2.2:字节变量的定义:字节变量的定义DB(Define Byte)DB伪伪指指令令用用于于分分配配一一个个或或多多个个字字节节单单元元,并可以将它们初始化为指定值并可以将它们初始化为指定值初初值值表表中中每每个个数数据据一一定定是是字字节节量量,存存放放一一个个8位数据:位数据:可以是可以是0255的无符号数的无符号数或是或是128127带符号数带符号数也可以是字符串常数也可以是字符串常数字节变量定义实例字节变量定义实例;数据段;数据段Xdb a,-5db 2 dup(100)
15、,?Ydb ABC资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值4.2.2:字节变量的应用:字节变量的应用mov al,X;此处;此处X表示它的第表示它的第1个数据,故个数据,故ALadec X+1;对;对X为始的第为始的第2个数据减个数据减1,故成为,故成为6mov Y,al;现在;现在Y这个字符串成为这个字符串成为 aBC资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值4.2.2:字变量的定义:字变量的定义DW(Define Word)D
16、W伪伪指指令令用用于于分分配配一一个个或或多多个个字字单单元元,并并可以将它们初始化为指定值可以将它们初始化为指定值初初值值表表中中每每个个数数据据是是字字量量,一一个个字字单单元元可可用于存放任何用于存放任何16位数据:位数据:一个段地址一个段地址一个偏移地址一个偏移地址两个字符两个字符065535之间的无符号数之间的无符号数3276832767之间的带符号数之间的带符号数字变量定义实例字变量定义实例;数据段;数据段countdw 8000h,?,ABmaxintequ 64hnumberdw maxintarraydw maxint dup(0)注意注意注意注意:数数据据定定义义语语句句定
17、定义义的的数数据据在在存存储储器器中中占占有有相相应应的的单单元元,而而EQU只只是是定定义义了了一一个个数数据据,在在汇汇编编后后以以实实际际数数据据的的形形式式体体现现在在程程序序中中。也也就就是是说说,EQU语语句句不不会会占占有有存储单元。存储单元。资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值4.2.2:双字变量的定义:双字变量的定义DD(Define Double word)DD伪伪指指令令用用于于分分配配一一个个或或多多个个双双字字单单元元,并可以将它们初始化为指定值并可以将它们初始化为指定值初值表中每
18、个数据是一个初值表中每个数据是一个3232位的双字量:位的双字量:可以是有符号或无符号的可以是有符号或无符号的3232位整数位整数也也可可以以用用来来表表达达1616位位段段地地址址(高高位位字字)和和1616位位的偏移地址(低位字)的远指针的偏移地址(低位字)的远指针varddvarddDD 0,?,12345678hDD 0,?,12345678hfarpointfarpoint DD 00400078hDD 00400078h资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值4.2.2 变量的应用变量的应用变量变量
19、具有存储单元的逻辑地址具有存储单元的逻辑地址程序代码中程序代码中通过变量名引用其指向的首个数据通过变量名引用其指向的首个数据通通过过变变量量名名加加减减位位移移量量存存取取以以首首个个数数据据为为基基地地址的前后数据址的前后数据 例题例题4.2 变量的定义和应用变量的定义和应用4.2.2:例题例题4.2 变量的定义变量的定义;数据段数据段bvar1db 100,01100100b,64h,d;字节变量:不同进制表达同一个数值,内存中有字节变量:不同进制表达同一个数值,内存中有4个个64Hminint=5;符号常量:;符号常量:minint数值为数值为5,不占内存空间,不占内存空间bvar2db
20、 -1,minint,minint+5;内存中数值依次为;内存中数值依次为FFH,5,0AHdb?,2 dup(20h);预留一个字节空间,重复定义了;预留一个字节空间,重复定义了2个数值个数值20Hwvar1 dw 2010h,4*4;字变量:两个数据是;字变量:两个数据是2010H、0010H,共占,共占4个字节个字节wvar2 dw?;wvar2是没有初值的字变量是没有初值的字变量4.2.2:例题:例题4.2 变量的定义(续)变量的定义(续)dvardd 12347777h,87651111h,?;双字变量:;双字变量:2个双字数据,一个双字空间个双字数据,一个双字空间abcdb a,b
21、,c,?;定义字符,实际是字节变量定义字符,实际是字节变量maxint equ 0ah;符号常量:符号常量:maxint10string db ABCDEFGHIJ;定义字符串:使用字节定义;定义字符串:使用字节定义DB伪指令伪指令crlfsdb 13,10,$;回车符;回车符0DH、换行符、换行符0AH和字符和字符$24Harray1 dw maxint dup(0);10个初值为个初值为0的字量,可以认为是数组的字量,可以认为是数组arraydb 2 dup(2,3,2 dup(4);6个字节内容依次为:个字节内容依次为:02 03 04 04 02 03 04 044.2.2:例题:例题
22、4.2 变量的应用变量的应用;代码段;代码段mov dl,bvar1;DL100dec bvar2+1;bvar2+15mov abc3,dl;abcabcdmov ax,word ptr dvar0;取双字到;取双字到DX.AXmov dx,word ptr dvar2add ax,word ptr dvar4;加双字到;加双字到DX.AXadc dx,word ptr dvar6mov word ptr dvar8,ax;保存双字的求和结果;保存双字的求和结果mov word ptr dvar10,dx4.2.2:例题:例题4.2 变量的应用(续)变量的应用(续)mov cx,maxint
23、;CX10mov bx,0;BX0again:add stringbx,3;string每个数值加每个数值加3inc bxloop again;循环;循环lea dx,abc;从;从abc开始开始mov ah,9;09H号号DOS功能调用功能调用int 21h;显示结果:;显示结果:abcdDEFGHIJKLM资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值NAME/TITLE:在在程程序序的的开开始始用用来来定定义义模模块块的的名名字字,汇编时从这里开始,可缺少。(汇编时从这里开始,可缺少。(P101)格式:格式:N
24、AME MODULETITLE TEXT;指指定定列列表表文文件件的的每每一一页页上上打打印印标题标题4.2.3 模块定义与连接伪指令模块定义与连接伪指令资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值END:表表示示汇汇编编程程序序到到此此结结束束将将源源程程序序翻翻译译成成目目标标模块代码的过程模块代码的过程。格式为:格式为:END LABEL标标号号(LABEL)指指示示程程序序开开始始执执行行的的起起始始地地址址,连连接接程序据此设置程序据此设置CS和和IP值。值。如如果果多多个个程程序序模模块块相相连连接接,
25、则则只只有有主主程程序序要要使使用用标号,其他子程序模块只用标号,其他子程序模块只用END而不必指定标号。而不必指定标号。4.2.3 模块定义与连接伪指令模块定义与连接伪指令 不要糊涂程序终止和汇编结束是两码事资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值4.2.3 模块定义与连接伪指令模块定义与连接伪指令段定义伪指令段定义伪指令:SEGMENT/ENDS在段定义中,在段定义中,SEGMENT和和ENDS总是成对使用的总是成对使用的格式:格式:段段名名 SEGMENT定定位位类类型型组组合合类类型型类类别别 ;本段程
26、序内容;本段程序内容(指令语句或伪指令语句指令语句或伪指令语句)段名段名 ENDS当当用用于于定定义义数数据据段段、附附加加数数据据段段和和堆堆栈栈段段时时,处处于于SEGMENT/ENDS伪伪指指令令中中间间的的语语句句,只只能能包包括括伪伪指指令令语语句,不能包括指令语句。句,不能包括指令语句。一一般般情情况况下下,带带有有 的的部部分分可可以以不不用用。但但是是,如如果果需需要要用用连连接接程程序序把把本本程程序序与与其其他他程程序序模模块块相相连连接接时时,就就需需要要使用这些说明,并且各项的顺序不能变。使用这些说明,并且各项的顺序不能变。资金是运动的价值,资金的价值是随时间变化而变化
27、的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值定定位位类类型型:连连接接时时用用于于指指定定该该段段应应开开始始于于什什么么样样的的物物理理地地址。可选择下列址。可选择下列4种之一:种之一:BYTE:从从当当前前可可用用的的字字节节地地址址XXXX XXXX XXXX XXXX XXXX(任一地址任一地址)开始;开始;WORD:从从当当前前可可用用的的字字地地址址XXXX XXXX XXXX XXXX XXX0(偶数地址偶数地址)开始;开始;PARA(缺缺省省):从从当当前前可可用用的的节节地地址址XXXX XXXX XXXX XXXX 0000(16的倍数的倍
28、数)开始;开始;PAGE:从从当当前前可可用用的的页页地地址址XXXX XXXX XXXX 0000 0000(256的倍数的倍数)开始开始。其中,其中,1节(节(paragraph)为为16字节,字节,1页为页为16节即节即256字节。字节。合理选择定位类型,可充分利用存储器空间。合理选择定位类型,可充分利用存储器空间。4.2.3 模块定义与连接伪指令模块定义与连接伪指令资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值组组合合类类型型:连连接接时时用用于于指指定定同同名名的的各各段段之之间间的的组组合方式。可选择下列
29、合方式。可选择下列6种之一:种之一:PUBLIC STACK COMMON MEMORY AT表达式 NONE(缺省)若若省省略略组组合合类类型型或或说说明明为为NONE类类型型,则则表表示示各各个段不组合,各有自己的段基值。个段不组合,各有自己的段基值。对堆栈段,必须用对堆栈段,必须用STACK类型说明,不能省略。类型说明,不能省略。4.2.3 模块定义与连接伪指令模块定义与连接伪指令资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值类类别别:是是要要将将组组合合后后的的各各段段按按类类别别分分类类存存放放,同同类类别
30、别的的段段将将被被依依次次存存放放在在连连续续的的存存储储区区内内,但但各各段段仍仍独独立立。类类别别是是由由用用户户定定义义的的、用用一一对对引引号号括括起起来来的的、长长度度不不超超过过40个个字字符符的的名名字字(标识符标识符)。典型的类别名:典型的类别名:CODE,DATA,STACK等。等。4.2.3 模块定义与连接伪指令模块定义与连接伪指令资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值ASSUME伪伪操操作作是是汇汇编编时时进进行行的的,它它用用于于在在汇汇编编时时告告诉诉汇汇编编器器,哪哪个个是是数数据
31、据段段,哪哪个个是是代代码码段段,哪个是堆栈段。哪个是堆栈段。只只是是指指定定某某个个段段分分配配给给哪哪一一个个段段寄寄存存器器,它它并并不不能能把把段段地地址址装装入入段段寄寄存存器器中中,要要把把段段地地址址装装入入段段寄寄存存器器中中,就就必必须须在在代代码码段段中中有有对对段段地地址址装装入入相相应的段寄存器中的指令。应的段寄存器中的指令。参考课本参考课本P103【例题【例题4-17】4.2.3 模块定义与连接伪指令模块定义与连接伪指令资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值定位伪指令定位伪指令ORG
32、:控制数据或代码所在的偏移地址控制数据或代码所在的偏移地址格式:格式:ORG 参数参数例如:例如:ORG 100h;从;从100H处安排数据或程序处安排数据或程序VECT1 DW 47A5HORG$+10;偏移地址加;偏移地址加10,即跳过,即跳过10个字节空间个字节空间汇编语言程序中,符号汇编语言程序中,符号“$”表示当前偏移地址值表示当前偏移地址值ORG伪伪指指令令可可以以放放在在源源程程序序的的任任何何位位置置,没没有有ORG伪指令时,从段首地址开始存放程序和数据伪指令时,从段首地址开始存放程序和数据4.2.3 模块定义与连接伪指令模块定义与连接伪指令资金是运动的价值,资金的价值是随时间
33、变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值模块连接伪指令模块连接伪指令(1)全局符号伪指令)全局符号伪指令格式:格式:格式:格式:PUBLICPUBLIC 符号名符号名符号名符号名1 1,符号名,符号名,符号名,符号名2 2,功功功功能能能能:说说说说明明明明本本本本模模模模块块块块中中中中定定定定义义义义的的的的变变变变量量量量和和和和标标标标号号号号哪哪哪哪些些些些可可可可以以以以被其他模块使用。被其他模块使用。被其他模块使用。被其他模块使用。(2)引用伪指令)引用伪指令格格格格式式式式:EXTRNEXTRN 符符符符号号号号名名名名1 1:类
34、类类类型型型型,符符符符号号号号名名名名2 2:类类类类型型型型,功功功功能能能能:说说说说明明明明本本本本模模模模块块块块中中中中引引引引用用用用了了了了哪哪哪哪些些些些其其其其他他他他模模模模块块块块的的的的变变变变量量量量或标号。或标号。或标号。或标号。4.2.3 模块定义与连接伪指令模块定义与连接伪指令资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值第第4章:例源程序文件章:例源程序文件wjl301.asmmy_data segment again:Mov al,siarray1 db 05,a2H,00,10
35、H,85H Inc si n equ 5 Cmp al,50array2 db n dup(?)Jbe next my_data ends Mov di,almy_code segment Inc di assume cs:my_code next:dec cx assume ds:my_data jnz againbegin:mov ax,my_data mov ah,4ch mov ds,ax int 21h Lea si,array1 my_code ends Lea di,array2 end begin Mov cx,n资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,
36、随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值4.2.3.程序开始程序开始为为了了指指明明程程序序开开始始执执行行的的位位置置,需需要要使使用用一一个个标标号(例题中采用了号(例题中采用了begin标识符)标识符)连接程序会根据程序起始点正确地设置连接程序会根据程序起始点正确地设置CS和和IP值值连连接接程程序序没没有有设设置置DS、SS和和ES值值。程程序序如如果果使使用用数数据据段段或或附附加加段段,必必须须明明确确给给DS、SS或或ES赋赋值值大多数程序需要数据段,程序的执行开始应是:大多数程序需要数据段,程序的执行开始应是:start:mov ax,data;data表示
37、数据段的段地址表示数据段的段地址mov ds,ax;设置设置DS资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值4.2.3.程序终止程序终止应应用用程程序序执执行行结结束束,应应该该将将控控制制权权交交还还操操作系统作系统汇汇编编语语言言程程序序设设计计中中,有有多多种种返返回回DOS的的方方法法,但但一一般般利利用用DOS功功能能调调用用的的4CH子子功功能能实实现现,它它需需要要的的入入口口参参数数是是AL返返回回数码(通常用数码(通常用0表示程序没有错误)表示程序没有错误)于是,应用程序的终止代码就是:于是,应用
38、程序的终止代码就是:mov ax,4c00hint 21h资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值 从上述程序中,我们可总结出如下结论:从上述程序中,我们可总结出如下结论:从上述程序中,我们可总结出如下结论:从上述程序中,我们可总结出如下结论:SEGMENT和和ENDS前前面面必必须须有有标标号号,而而且且在在相相互互配配对对的的段段,它它们们前前面面要要使使用用相相同同的的标标号号。对对于于不不同同的的段段定定义义标标号号,尽尽管管这这些些标标号号可可以以是是任任意意字字串串,但但为为了了程程序序的的可读性,应使其有一定的意义。可读性,应使其有一定的意义。ASSUME语语句句可可使使汇汇编编器器知知道道CS、DS、SS指指向向哪哪个个段段,但但它它只只在在汇汇编编时时起起作作用用,在在运运行行时时CPU并并不不知知道道除除CS外的其它段地址,所以必须在程序中用指令进行赋值。外的其它段地址,所以必须在程序中用指令进行赋值。首首条条被被执执行行的的语语句句有有一一个个标标号号,在在程程序序的的结结尾尾使使用用END后跟上这个标号,用以标出这个程序的开始执行处。后跟上这个标号,用以标出这个程序的开始执行处。第第4章:小结章:小结