- 1、本文档共123页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章:8086汇编语言程序设计 汇编语言和机器语言都是面向机器的语言,即不同的机器有不同的指令系统。 机器指令与机器代码是一一对应的。 汇编语言机器语言均属于低级语言。 2、汇编语言的特点 代码长度短,执行速度最快 可直接有效的控制机器的运行 准确掌握机器运行时间 可最有效的利用CPU、内存、I/O资源 直接控制机器运行的场合 汇编语言常用于: 需要准确控制运行时间的场合 运行速度要求很高的场合 例3-1:对10个字节数据a1~a10求和。 DATA SEGMENT AT 2000H ARRAY DB a1 ,a2 ,a3 ,… ,a10 COUNT EQU $ - ARRAY SUM DW ? DATA ENDS STACK SEGMENT PARA STACK ‘STACK’ STAK DB 10 DUP ( ?) TOP EQU LENGTH STAK STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV AX,0 MOV DI,OFFSET SUM MOV BX,OFFSET ARRAY MOV CX,COUNT LOP: ADD AL,[BX] ADC AH,0 INC BX LOOP LOP MOV [DI] ,AX MOV AH ,4CH INT 21H CODE ENDS END START 3.2.2 常量、标识符和表达式 标识符可用作符号常量、名字、变量和标号等。 组成标识符有如下规定: 组成标识符的字符有: 大写字母:A~Z;文小写字母: a~z; 数字0~9;字符?、@、_ 、$; 字符长度不超过3l个;首字符不能是数字; ? 不能单独作为一个标识符; 不能把保留字用作标识符,保留字包括助记符、寄存 器名等。 (1)给程序模块命名 NAME 命令 格式: NAME 名字 名字是程序员按标识符规定所取的程序模块名。 (2)标题命名语句 TITLE 命令 格式: TITLE 名字 名字作为每页标题打印出来,标题名字符不大于60个 (3)程序结束 END命令 格式: END [ 标号 ] 标号指示程序开始执行的起始地址的标号。 CODE SEGMENT COUNT PROC NEAR ADD CX,1 RET COUNT ENDP START:MOV AX,100 ┊ CALL COUNT ┊ CALL COUNT ┊ HLT CODE ENDS END START ① 给变量赋初值或指定变量类型 例:COUNT DB 100 ARRAY DW -1,1024 ②定义一个ASCⅡ码的字符串 例1: DA1 DB 2 DUP(0) DA2 DB 2 DUP(‘AB’) DA3 DW 2 DUP(1) (1)名字 名字包括文件名、标题名、段名、过程名和符号常量名等,是程序员在编程中按标识符规定命名的,目的是方便编程和读程。 段命 在段定义语句中命名取定,定义后的段名可以作为段基值来使用,用来对段寄存器赋值。 例: MOV AX , DATA MOV DS , AX (2)变量 变量的定义和属性 变量由数据定义语句DB/DW/DD/DQ/DT来定义 变量有三属性:段属性、偏移属性和类型属性: 段属性表示变量所在段的起始地址。 偏移属性表示变量在段内的偏移地址。用16位无符号表示偏移地址。 类型属性表示该变量能存放的数据长度。长度为1B的变量,类型为BYTE,长度为2B的变量,类型为WORD等。 分析运算符(5个) 用于把变量的三个属性分别取出来作为操作数。 合成运算符 格式 :
文档评论(0)