物理汇编语言程序设计学习教案.pptx
《物理汇编语言程序设计学习教案.pptx》由会员分享,可在线阅读,更多相关《物理汇编语言程序设计学习教案.pptx(169页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1物理物理(wl)汇编语言程序设计汇编语言程序设计第一页,共169页。4.1 4.1 汇编语言的格式汇编语言的格式汇编语言的格式汇编语言的格式 4.1.1 8086 4.1.1 8086汇编语言程序的一个汇编语言程序的一个汇编语言程序的一个汇编语言程序的一个(y(y )例子例子例子例子MY_DATA SEGMENT MY_DATA SEGMENT ;定义数据段;定义数据段;定义数据段;定义数据段SUM DBSUM DB?;为符号;为符号;为符号;为符号SUMSUM保留一个字节保留一个字节保留一个字节保留一个字节MY_DATA ENDS MY_DATA ENDS ;定义数据段结束;定义数据
2、段结束;定义数据段结束;定义数据段结束MY_CODE SEGMENT MY_CODE SEGMENT ;定义码段;定义码段;定义码段;定义码段 ASSUME CS ASSUME CS:MY_CODE MY_CODE,;规定;规定;规定;规定CSCS和和和和DSDS的内容的内容的内容的内容 DS DS:MY_DATA MY_DATAPORT_VAL EQU 3 PORT_VAL EQU 3 ;端口的符号名;端口的符号名;端口的符号名;端口的符号名GOGO:MOV AX MOV AX,MY_DATA MY_DATA ;DSDS初始化为初始化为初始化为初始化为MY_DATAMY_DATA MOV D
3、S MOV DS,AXAX MOV SUM MOV SUM,0 0 ;清;清;清;清SUMSUM单元单元单元单元CYCLECYCLE:CMP SUM CMP SUM,100 100 ;SUMSUM单元与单元与单元与单元与100100相比较相比较相比较相比较 JNA NOT_DONE JNA NOT_DONE ;若未超过,转至;若未超过,转至;若未超过,转至;若未超过,转至NOT_DONENOT_DONE MOV AL MOV AL,SUM SUM ;若超过,把;若超过,把;若超过,把;若超过,把SUMSUM单元的内容单元的内容单元的内容单元的内容 OUT PORT_VAL OUT PORT_V
4、AL,AL AL ;通过;通过;通过;通过ALAL输出输出输出输出 HLT HLT ;然后停机;然后停机;然后停机;然后停机NOT DONENOT DONE:IN AL IN AL,PORT_VAL PORT_VAL ;未超过时,输入;未超过时,输入;未超过时,输入;未超过时,输入(shr)(shr)下一个下一个下一个下一个字节字节字节字节 ADD SUM ADD SUM,AL AL ;与以前的结果累加;与以前的结果累加;与以前的结果累加;与以前的结果累加 JMP CYCLE JMP CYCLE ;转至;转至;转至;转至CYCLECYCLEMY CODE ENDS MY CODE ENDS ;
5、码段结束;码段结束;码段结束;码段结束 END GO END GO ;整个程序结束;整个程序结束;整个程序结束;整个程序结束 第1页/共169页第二页,共169页。一个语句行由一个语句行由4个部分组成:个部分组成:标号(或名称)标号(或名称)操作码操作码 操作数操作数 ;注释;注释*各部分之间至少要用一个空格各部分之间至少要用一个空格作为间隔。作为间隔。*“&”作为后续作为后续(hux)行的标志。行的标志。第2页/共169页第三页,共169页。4.1.2 80864.1.2 8086汇编语言汇编语言汇编语言汇编语言(hu bin y(hu bin y yn)yn)源程序的格式源程序的格式源程序
6、的格式源程序的格式 8086 8086的汇编语言的源程序是分段的,由若干个段形成的汇编语言的源程序是分段的,由若干个段形成的汇编语言的源程序是分段的,由若干个段形成的汇编语言的源程序是分段的,由若干个段形成(xngchng)(xngchng)一个源程序。源程序的一般格式为:一个源程序。源程序的一般格式为:一个源程序。源程序的一般格式为:一个源程序。源程序的一般格式为:NAME1 SEGMENT NAME1 SEGMENT 语句语句语句语句 语句语句语句语句 NAME1 ENDS NAME1 ENDS NAME2 SEGMENT NAME2 SEGMENT 语句语句语句语句 语句语句语句语句 N
7、AME2 ENDS NAME2 ENDS END END标号标号标号标号 每一个段有一个名称,每一个段有一个名称,以符号以符号(fho)SEGMENT作为段的开始,作为段的开始,以语句以语句ENDS作为段的结束。作为段的结束。这两者名称必须相同。这两者名称必须相同。整个源程序以语句整个源程序以语句END作为结束。作为结束。第3页/共169页第四页,共169页。4.2 4.2 语句语句语句语句(y(y j)j)行的构成行的构成行的构成行的构成 语句行是由标记语句行是由标记语句行是由标记语句行是由标记(bioj)(Token)(bioj)(Token)及分隔符及分隔符及分隔符及分隔符(空格空格空格
8、空格)按照一定的规则组织起来的,标记按照一定的规则组织起来的,标记按照一定的规则组织起来的,标记按照一定的规则组织起来的,标记(bioj)(bioj)是是是是IBMIBM宏汇编宏汇编宏汇编宏汇编源程序的最小的、有意义的单位。源程序的最小的、有意义的单位。源程序的最小的、有意义的单位。源程序的最小的、有意义的单位。第4页/共169页第五页,共169页。4.2.1 标记标记(bioj)1.1.IBM宏汇编的字符集宏汇编的字符集 2.2.(1)字母字母3.3.包含包含(bohn)大写的英文大写的英文字母:字母:ABCDXYZ;4.4.小写的英文字母:小写的英文字母:abcxyz。5.5.(2)数字数
9、字6.6.阿拉伯数字:阿拉伯数字:0123456789。7.7.(3)特殊字符特殊字符8.8.可打印字符下图所示。可打印字符下图所示。第5页/共169页第六页,共169页。(4)打印字符有:空格、制表(TAB键)、回车和换行。其余字符若出现一律按空格处理。尽管(jn gun)&是字符集中的一个字符,但紧跟在回车换行之后的符号&代表连续行,被看作空格。IBM宏汇编(hubin)字符集中的可打印字符第6页/共169页第七页,共169页。2.界符界符(Delimiters)界符是一些特殊字符。界符是一些特殊字符。它们可以它们可以(ky)表明某个标记的表明某个标记的结束。结束。它们本身也有一定的意义它
10、们本身也有一定的意义 有了界符就可以有了界符就可以(ky)不再用分不再用分隔符,隔符,例子中的冒号例子中的冒号(:)、逗号、逗号(,)都是都是一种界符。一种界符。next:mov ax,bx;将将bx 的值赋的值赋给给ax第7页/共169页第八页,共169页。3.常量常量(Constants)凡是出现在凡是出现在8086源程序中的源程序中的固定值固定值(它在程序运行期间不会它在程序运行期间不会变化变化),就称为常量。例子,就称为常量。例子(l zi)中的数中的数0、3、100等都是常量,等都是常量,而且是数字常量。而且是数字常量。例如:例如:MOV AL,100b (1)数字数字(整数整数)常
11、量常量 二进制常量二进制常量 以字母以字母B结尾的由一串结尾的由一串“0”和和“1”组成的序列。例如,组成的序列。例如,00101100B。第8页/共169页第九页,共169页。十进制常量十进制常量十进制常量十进制常量 0 09 9的数字组成的序列,可以以字母的数字组成的序列,可以以字母的数字组成的序列,可以以字母的数字组成的序列,可以以字母DD作结尾,或没有作结尾,或没有作结尾,或没有作结尾,或没有任何字母作结尾。例如任何字母作结尾。例如任何字母作结尾。例如任何字母作结尾。例如(lr)(lr),1234D1234D或或或或12341234。八进制常量八进制常量八进制常量八进制常量 以字母以字
12、母以字母以字母Q(Q(或字母或字母或字母或字母O)O)结尾,由若干个结尾,由若干个结尾,由若干个结尾,由若干个0 07 7的数字组成的的数字组成的的数字组成的的数字组成的序列。例如序列。例如序列。例如序列。例如(lr)255Q(lr)255Q,377Q377Q等。等。等。等。十六进制常量十六进制常量十六进制常量十六进制常量 以字母以字母以字母以字母HH结尾,由若干个结尾,由若干个结尾,由若干个结尾,由若干个0 09 9的数字或的数字或的数字或的数字或A AF F的字母所的字母所的字母所的字母所组成的序列。组成的序列。组成的序列。组成的序列。为了避免与标识符相混淆,十六进制数在语句中必须以为了避
13、免与标识符相混淆,十六进制数在语句中必须以为了避免与标识符相混淆,十六进制数在语句中必须以为了避免与标识符相混淆,十六进制数在语句中必须以数字打头。所以,凡是以字母数字打头。所以,凡是以字母数字打头。所以,凡是以字母数字打头。所以,凡是以字母A AF F开始的十六进制数,开始的十六进制数,开始的十六进制数,开始的十六进制数,必须在前面加上数字必须在前面加上数字必须在前面加上数字必须在前面加上数字0 0。例如例如例如例如(lr)56H(lr)56H,0BA3FH0BA3FH等。等。等。等。第9页/共169页第十页,共169页。(2)字符串常量字符串常量 字符串常量是由包含在单引字符串常量是由包含
14、在单引号内的号内的1至至2个个ASCII字符构成的。字符构成的。只有只有(zhyu)在初始化存储器在初始化存储器时才可以使用多于两个字符的时才可以使用多于两个字符的字符串常量。字符串常量。例如:例如:MOV AL,D MOV AX,AB MOV AX,ASD MY_DATA SEGMENT SUM DBASHFHGHHCBNVB MY_DATA ENDS 第10页/共169页第十一页,共169页。4.4.标识符标识符标识符标识符(Identifiers)(Identifiers)标识符是由程序员自由建立起来的、有特定意标识符是由程序员自由建立起来的、有特定意标识符是由程序员自由建立起来的、有特
15、定意标识符是由程序员自由建立起来的、有特定意义的字符序列,义的字符序列,义的字符序列,义的字符序列,例例例例:SUM:SUM、CYCLECYCLE和和和和PORT_VALPORT_VAL等等。等等。等等。等等。一个标识符是由最多为一个标识符是由最多为一个标识符是由最多为一个标识符是由最多为3131个字母、数字及规定个字母、数字及规定个字母、数字及规定个字母、数字及规定的特殊字符的特殊字符的特殊字符的特殊字符(?_(?_)等组成等组成等组成等组成(z(z chn chn)的,而且的,而且的,而且的,而且不能用数字打头不能用数字打头不能用数字打头不能用数字打头(以免与十六进制数相混淆以免与十六进制
16、数相混淆以免与十六进制数相混淆以免与十六进制数相混淆)。This_doneThis_doneThisdoneThisdone是不同的标识符。是不同的标识符。是不同的标识符。是不同的标识符。若前若前若前若前3131个字符相同,但第个字符相同,但第个字符相同,但第个字符相同,但第3232个字符不同,两个标识个字符不同,两个标识个字符不同,两个标识个字符不同,两个标识符也是相同的。符也是相同的。符也是相同的。符也是相同的。第11页/共169页第十二页,共169页。MY_DATA SEGMENT MY_DATA SEGMENT ;定义数据段;定义数据段;定义数据段;定义数据段SUM DBSUM DB?
17、;为符号;为符号;为符号;为符号SUMSUM保留一个字节保留一个字节保留一个字节保留一个字节MY_DATA ENDS MY_DATA ENDS ;定义数据段结束;定义数据段结束;定义数据段结束;定义数据段结束(jish)(jish)MY_CODE SEGMENT MY_CODE SEGMENT ;定义码段;定义码段;定义码段;定义码段 ASSUME CS ASSUME CS:MY_CODE MY_CODE,;规定;规定;规定;规定CSCS和和和和DSDS的内容的内容的内容的内容 DS DS:MY_DATA MY_DATAPORT_VAL EQU 3 PORT_VAL EQU 3 ;端口的符号名
18、;端口的符号名;端口的符号名;端口的符号名GOGO:MOV AX MOV AX,MY_DATA MY_DATA ;DSDS初始化为初始化为初始化为初始化为MY_DATAMY_DATA MOV DS MOV DS,AXAX MOV SUM MOV SUM,0 0 ;清;清;清;清SUMSUM单元单元单元单元CYCLECYCLE:CMP SUM CMP SUM,100 100 ;SUMSUM单元与单元与单元与单元与100100相比较相比较相比较相比较 JNA NOT_DONE JNA NOT_DONE ;若未超过,转至;若未超过,转至;若未超过,转至;若未超过,转至NOT_DONENOT_DONE
19、 MOV AL MOV AL,SUM SUM ;若超过,把;若超过,把;若超过,把;若超过,把SUMSUM单元的内容单元的内容单元的内容单元的内容 OUT PORT_VAL OUT PORT_VAL,AL AL ;通过;通过;通过;通过ALAL输出输出输出输出 HLT HLT ;然后停机;然后停机;然后停机;然后停机NOT DONENOT DONE:IN AL IN AL,PORT_VAL PORT_VAL ;未超过时,输入下一个字节;未超过时,输入下一个字节;未超过时,输入下一个字节;未超过时,输入下一个字节 ADD SUM ADD SUM,AL AL ;与以前的结果累加;与以前的结果累加;
20、与以前的结果累加;与以前的结果累加 JMP CYCLE JMP CYCLE ;转至;转至;转至;转至CYCLECYCLEMY CODE ENDS MY CODE ENDS ;码段结束;码段结束;码段结束;码段结束(jish)(jish)END GO END GO ;整个程序结束;整个程序结束;整个程序结束;整个程序结束(jish)(jish)第12页/共169页第十三页,共169页。5.5.保留字保留字保留字保留字(Reserved words)(P93)(Reserved words)(P93)保留字看上去像标识符,但是它们在语言中有特保留字看上去像标识符,但是它们在语言中有特保留字看上去像
21、标识符,但是它们在语言中有特保留字看上去像标识符,但是它们在语言中有特殊的意义,而且不能用它们作为标识符。殊的意义,而且不能用它们作为标识符。殊的意义,而且不能用它们作为标识符。殊的意义,而且不能用它们作为标识符。如例子如例子如例子如例子(l zi)(l zi)中的中的中的中的SEGMENTSEGMENT、MOVMOV、EQUEQU、ALAL等都是保留字。等都是保留字。等都是保留字。等都是保留字。实际上凡是实际上凡是实际上凡是实际上凡是80868086的指令助记符,汇编语言中的命的指令助记符,汇编语言中的命的指令助记符,汇编语言中的命的指令助记符,汇编语言中的命令令令令(伪指令伪指令伪指令伪指
22、令),寄存器名等都是保留字。,寄存器名等都是保留字。,寄存器名等都是保留字。,寄存器名等都是保留字。注释注释注释注释(Comment)(Comment)注释是分号(;)后面的任意的字符序列。在汇编注释是分号(;)后面的任意的字符序列。在汇编注释是分号(;)后面的任意的字符序列。在汇编注释是分号(;)后面的任意的字符序列。在汇编时并不处理。在可打印文件中,注释和源程序可时并不处理。在可打印文件中,注释和源程序可时并不处理。在可打印文件中,注释和源程序可时并不处理。在可打印文件中,注释和源程序可同时打印。同时打印。同时打印。同时打印。第13页/共169页第十四页,共169页。4.2.2 符号符号(
23、fho)使用符号的原因:使用符号的原因:使用符号的原因:使用符号的原因:为了使程序更具有普遍性,也便于程序的修改为了使程序更具有普遍性,也便于程序的修改为了使程序更具有普遍性,也便于程序的修改为了使程序更具有普遍性,也便于程序的修改符号可以代替存储单元、数据、表达式等。符号可以代替存储单元、数据、表达式等。符号可以代替存储单元、数据、表达式等。符号可以代替存储单元、数据、表达式等。符号属于标识符,要符合标识符的规则。符号属于标识符,要符合标识符的规则。符号属于标识符,要符合标识符的规则。符号属于标识符,要符合标识符的规则。例例例例:存储单元存储单元存储单元存储单元SUMSUM、输入输出端口输入
24、输出端口输入输出端口输入输出端口PROT_VALPROT_VAL。符号可以分成五类符号可以分成五类符号可以分成五类符号可以分成五类:寄存器、变量、标号寄存器、变量、标号寄存器、变量、标号寄存器、变量、标号(bioho)(bioho)、数、其他。、数、其他。、数、其他。、数、其他。每个符号都具有一定的属性。每个符号都具有一定的属性。每个符号都具有一定的属性。每个符号都具有一定的属性。第14页/共169页第十五页,共169页。1.寄存器寄存器(Registers)8086的寄存器常代表某一个的寄存器常代表某一个操作数。操作数。寄存器有一种类型特性:字节寄存器有一种类型特性:字节/字字 寄存器。寄存
25、器。8086的标志位被看的标志位被看作作(kn zu)是一位寄存器。是一位寄存器。2.变量变量(Variable)存放在存储单元中的操作数存放在存储单元中的操作数是变量,是变量,在程序中出现的是存储单元地址在程序中出现的是存储单元地址的符号,的符号,即它们的名称。即它们的名称。MY-DATA SEGMENT ;定义数据段定义数据段 SUM DB?;为;为符号符号SUM保留一个字节保留一个字节 MUL DW?MY_DATA ENDS第15页/共169页第十六页,共169页。所有的变量都具有三种所有的变量都具有三种(sn zhn)属性:属性:(1)段值段值(SEGMENT),即变量单元所在段的段地
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 物理 汇编语言 程序设计 学习 教案
限制150内