资源描述:
《南京邮电大学 微型计算机原理与接口技术 4_1章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言程序设计Ch.4宏汇编语言4.1汇编语言程序的开发过程4.3宏汇编语言的基本语法1第4章宏汇编语言2例:B041B40ECD10B8004CCD21moval,‘A’;显示“A”movah,14int10hmovax,4c00h;返回操作系统int21h3ex1codesegmentparapublic'code‘assumecs:codego:moval,‘A‘;显示“A”movah,14int10hmovax,4c00h;返回操作系统int21hcodeends;代码段结束endgo;模块结束,并给出启动地址end;结束44.1汇编语言程序的开发过程编辑TASM翻译(汇编程
2、序)XX.ASMXX.OBJXX.EXE运行正确?XX.COM链接TLINKNO查找错误(动态调试)TD结束YES54.3基本语法4.3.1源程序结构汇编语言源程序是分段的,一般由若干个段形成一个程序。格式如下:编辑TASM翻译(汇编程序)XX.ASMXX.OBJXX.EXE运行正确?XX.COM链接TLINKNO查找错误(动态调试)TD结束YES6NAME1SEGMENT语句语句┇NAME1ENDSNAME2SEGMENT语句语句┇NAME2ENDS┇NAMEnSEGMENT语句语句┇NAMEnENDSEND74.3.2语句行的构成语句行是由标记及分隔符按照一定的规则组织起来的。1.
3、标记标记是宏汇编语言中有意义的最小单位。标记有下面几种。(1)宏汇编字符集①字母:A,B…Z;a,b…z;②数字:0,1…9;③特殊字符:ASCII码中的其余可打印字符;8④非打印字符:空格,TAB,回车,换行等。注意:紧跟回车,换行的“&”代表一连续行,作空格处理。(2)常量出现在源程序中的固定值称作常量。①数字常量例:1001B,45Q,0FBA9H…②字符串常量例:‘A’,‘Student’…(3)标识符由程序设计者自由创立的有特殊意义的字符串称作标识符。标识符的第一个符号不能是数字。9长度≤31。例:go,go-1;例:abcd…z-1234与abcd…z-12345相同。(4
4、)保留字保留字是汇编程序所用到的字符串,包含助记符,运算符等。102.符号符号本身就是标识符或保留字,符号的属性为汇编程序提供了必要的信息。寄存器符号32位、16位、8位和1位(2)变量值是可以改变的量。变量存放在数据段。它在程序中以存储单元地址符号的形式出现。所有变量有3种属性:段值,偏移量,类型。11例:VAR1DB16,32,88它所对应的段是数据段,VAR1=16,VAR1+1=32,…(3)标号标号定义在代码段。它是指令或常量存放单元的符号地址。标号有三种属性:段值,偏移量,类型。类型有两种:NEAR,FAR例:LLL:MOVAX,89HTABDB0c0H,0f9H,0a4H
5、,0b0H,99H,92H,82H,0f8HDB80H,90H,88H,83H,0c6H,0a1H,86H,8eH123.运算符4.表达式前面所讲的符号,标记及运算符可以有机地组成表达式。表达式可以分为数值表达式和地址表达式。135.语句汇编语言中的语句只有两种:指令性语句和指示性语句NOPREPESCASDGO:MOVAL,’A’;AL=41H方括号“[]”表示任选项;“〈〉”表示必选项。指令性语句是以指令为主构成的语句。其书写格式如下::[标号:][前缀]〈指令助记符〉[操作数][;注释]14指示性语句书写格式如下:[标识符]〈伪指令〉[操作数][;注释]指示性语句是以伪指令为主构
6、成的语句,因而又称作伪语句。标识符可以是过程名、变量名、符号常量、段名;伪指令是CPU不认识的,它仅为汇编程序或链接程序提供信息。[标号:][前缀]〈指令助记符〉[操作数][;注释]154.3.3指示性语句与部分伪指令1.符号定义语句(1)等值语句句法:符号名EQU表达式例:XXEQU39YYEQU5809HZZEQUAAA;指令COUNTEREQUCX;寄存器等值语句在解除前不可重新定义。16(2)解除语句句法:PURGE符号1[,符号2,…,符号n]该语句用于清除不再使用的已定义符号。例:XXEQU12PURGEXXXXEQUDX(3)等号语句句法:符号名=表达式该语句
7、与等值语句类似,但可对已使用的符号重新定义。例:XX=12XX=XX+1172.数据定义语句程序通常由指令和数据组成。程序运行前,DOS既要为必须使用的数据工作区(变量、栈区等)申请贮存空间,又要为源程序中的变量赋予初值。数据定义语句就是指示汇编程序处理变量的伪语句。句法1:[变量名]DB初值1
8、?[,初值1
9、?,…]句法2:[变量名]DW初值1
10、?[,初值1
11、?,…]句法3:[变量名]DD初值1
12、?[,初值1
13、?,…]句法4:[变量名]DF初