《MASM汇编语言知识》PPT课件.ppt

上传人:za****8 文档编号:13338366 上传时间:2020-06-15 格式:PPT 页数:44 大小:277.46KB
返回 下载 相关 举报
《MASM汇编语言知识》PPT课件.ppt_第1页
第1页 / 共44页
《MASM汇编语言知识》PPT课件.ppt_第2页
第2页 / 共44页
《MASM汇编语言知识》PPT课件.ppt_第3页
第3页 / 共44页
点击查看更多>>
资源描述
第4章ASM汇编语言知识(3学时),4.1ASM汇编语言格式4.2汇编语句表达式4.3伪指令,开始,4.1ASM汇编语言格式,4.1.1指令语句格式4.1.2伪指令语句格式,返回本章首页,4.1.1指令语句格式,指令语句的一般格式如下:标号:指令助记符操作数;注释标号:标号是机器指令语句存放地址的符号表示,代表该指令目标代码的第一个字节地址,后面必须紧跟冒号“:”。指令助记符:指令助记符为语句的核心成分,表示了该语句的操作类型。操作数:操作数表示指令助记符的操作对象。注释:注释均以分号开始,它可占一行或多行,一般放在一条语句的后面。,返回本节,4.1.2伪指令语句格式,伪指令语句格式如下:符号名伪指令符操作数;注释符号名:符号名是伪指令语句的一个可选项。伪指令符:伪指令符指定汇编程序要完成的具体操作,如数据定义伪指令DB、DW、DD,段定义伪指令SEGMENT,假定伪指令ASSUME等。操作数:伪指令后面的操作数可以是常数、字符串、变量、表达式等,其个数由具体的伪指令决定,各个操作数之间必须以“逗号”分隔。注释:伪指令的注释必须以“;”开始,其作用同指令语句中的注释部分。,返回本节,4.2汇编语句表达式,4.2.1常量4.2.2变量4.2.3标号4.2.4表达式中的运算符4.2.5运算符的优先级,返回本章首页,4.2.1常量,1数值常量2.字符串常量,1数值常量,表4.1各种形式数字常量格式对照表,2.字符串常量,字符串常量是用单引号引起来的一个或多个字符。字符串常量是以各字符的ASC码表示的。如A用41H表示,字符串A1B2用41H,31H,42H,32H表示。,返回本节,4.2.2变量,1变量2变量的定义,(1)段属性(2)偏移地址属性(3)类型属性(DB/DW/DD),1变量,表达式项是给变量或指定存储单元赋予初值,它有以下几种形式:(1)数值表达式(2)字符串表达式(3)?表达式(4)带DUP的表达式,2变量的定义,数据定义伪指令可以为一个或连续的存储单元设置数值初值。【例4.1】为数据段分配存储单元。DATASEGMENTADB11H,12H,13HBDW1122H,3344HCDD12345678HDATAENDS上述变量(A、B、C)的存储单元分配及初始化情况如下图4-1所示。,(1)数值表达式,图4-1数据段中数据存储分配图,字符串表达式中的字符串必须用引号引起来。DB、DW、DD伪指令将字符串中的各字符均以ASC码形式存放在相应的存储单元,但表示形式各不相同。【例4.2】为字符串分配存储单元。DATASEGMENTSTR1DB123STR2DWAB,ASTR3DDABDATAENDS其存储单元分配如下图4-2所示。,(2)字符串表达式,图4-2数据段中存储分配图,(3)?表达式:?表达式只分配存储单元,不赋值。例如:CNTDB?BUFDW?,在表达式中使用重复数据操作符DUP,可以为连续的存储单元提供重复数据,其格式为:NDUP(表达式)其中N为重复因子,只能取正整数,表示定义了N个重复数据存储单元,其类型由它前面的数据定义伪指令确定,而每个数据存储单元中的初值由DUP后面圆括号中的表达式给定。例如:BUFDB100DUP(0)以上语句定义了以BUF为首址,大小为100个字节,初值为0的数据存储单元。,(4)带DUP的表达式,返回本节,4.2.3标号,标号是一条指令语句的符号地址。在汇编源程序中,只有在需要转向一条指令语句时,才为该指令语句设置标号,以便在转移类指令(含子程序调用指令)中直接引用这个标号。因此,标号可作为转移类指令的操作数,即转移地址。【例4.3】符号地址表示。NEXT:MOVAL,SI;带标号NEXT的指令DECCXJNENEXT,1段属性2偏移地址属性3类型属性(NEAR/FAR),标号也具有三种属性,返回本节,4.2.4表达式中的运算符,1算术运算符2逻辑运算符3关系运算符4属性运算符5数值返回运算符,算术运算符包括:(加)、(减)、*(乘)、(除)、MOD(求模)、SHL(左移)、SHR(右移)几种,它既可以用于数值表达式又可用于地址表达式。,1算术运算符,NUM1EQU25*450;NUM1=50NUM2EQUNUM1/7;NUM2=7NUM3DBNUM1MOD7;NUM3=1VAR1DB1,2,3,4,5VAR2DB12345NUM4EQUVAR2-VAR1;NUM4=5NUM5EQU0FHMOVAL,NUM5SHL4;(AL)=11110000BMOVBL,NUM5SHR4;(BL)=00000000B,【例4.4】用算术运算符进行数值表达式运算。,逻辑运算符包括:AND、OR、XOR、NOT四种运算。由于逻辑运算是按位操作,且在汇编过程中完成,因而运算的结果仍为整数常量。【例4.5】用逻辑运算符进行运算。MOVAL,34HAND0FH;04HALMOVBL,05HOR30H;35HBLMOVCX,NOT00FFH;0FF00HCXMOVDX,789AHXOR000FH;7895HDX,2逻辑运算符,关系运算符包括:相等(EQ),不等(NE),小于(LT),大于(GT),小于等于(LE)及大于等于(GE)。【例4.6】用关系运算符进行数值表达式运算。NUM1DB10LT5;NUM1=0NUM2DB0AAAAHGT7FFFH;NUM2=0FFFFHMOVAX,AEQ41H;0FFFFHAXMOVBX,NUM2LTNUM1;0BX,3关系运算符,(1)PTR运算符格式:类型PTR地址表达式用来将“表达式”说明为一种数据类型。例如:MOVBYTEPTRBUF,23,4属性运算符,(1)SEG运算符(2)OFFSET运算符(3)TYPE运算符(4)LENGTH运算符(5)SIZE运算符,5数值返回运算符,(1)SEG运算符格式:SEG变量或标号功能:分离出其后变量或标号所在段的段首址。例如:MOVAX,SEGIEnterMOVDS,AX(2)OFFSET运算符格式:OFFSET变量或标号功能:分离出其后变量或标号的偏移地址。例如:MOVAX,OFFSETIEnter,(3)TYPE运算符格式:TYPE变量或标号功能:分离出其后变量或标号的类型。如果是变量,将返回该变量的类型对应字节数;如果是标号,则返回代表标号类型的数值。它们之间的关系见下表所示:,(4)LENGTH运算符格式:LENGTH变量功能:取出变量所含的数据存储单元个数。【例4.7】取出变量占存储单元个数。DATASEGMENTADBABCDEFBDW10DUP(1,2DUP(2)CDB3,20DUP(0)DATAENDSMOVAX,LENGTHA;1AXMOVBX,LENGTHB;10BXMOVCX,LENGTHC;1CX,(5)SIZE运算符格式:SIZE变量功能:取出变量所含的数据存储区大小。其返回值为:LENGTH变量TYPE变量例如:上例中A、B、C三变量:SIZEA=LENGTHATYPEA=1SIZEB=LENGTHBTYPEB=20SIZEC=LENGTHCTYPEC=1,4.2.5运算符的优先级,表4.3运算符的优先级,返回本节,4.3伪指令,4.3.1数据定义伪指令4.3.2符号定义伪指令4.3.3段定义伪指令SEGMENT/ENDS4.3.4假定伪指令ASSUME4.3.5置汇编地址计数器伪指令ORG4.3.6源程序结束伪指令,返回本章首页,4.3.1数据定义伪指令,常用的数据定义伪指令有DB,DW,DD。格式:变量名数据定义伪指令表达式,功能:定义数据存储区,类型由数据定义伪指令确定,初值由表达式给定。,返回本节,4.3.2符号定义伪指令,1等价伪指令2等号伪指令,1等价伪指令,格式:符号名EQ表达式功能:为常量、表达式及其他各种符号定义一个等价的符号名,但它不申请存储单元。用途:用符号表示常量、数值表达式,即定义符号常量。使用符号常量可使程序简单明了,增强程序的可读性和通用性。例如:ICW1equ00010011bICW2equ00100001bICW4equ00000001bOCW1equ11111101b,2等号伪指令,格式:符号名=表达式功能:为常量、表达式及其他各种符号定义一个等价的符号名,并能对所定义的符号多次重复定义,且以最后一次定义的值为准。【例3.8】定义等价符号名。COST=20M=MOVLOST=LOST+10;30LOSTM=ADD;M=ADD,4.3.3段定义伪指令SEGMENT/END,格式:段名segment指令或伪指令段名ends注意:段名是为该段起的名字,用来指出汇编程序为该段分配的存储区起始位置,例如:datasegmentCNTdb0dataends,CODESEGMENTASSUMECS:CODE,DS:DATASTARTPROCMOVAX,DATAMOVDS,AXMOVSI,OFFSETBUFMOVCX,10MOVBL,1SCAN:CMPBYTEPTRSI,0JSEXITINCSIDECCXJNZSCANMOVBL,0EXIT:JMP$STARTENDPCODEENDS,4.3.4假定伪指令ASSUME,格式:ASSUME段寄存器:段名,段寄存器:段名功能:建立段寄存器与段之间的对应关系。该伪指令一般出现在代码段中。,4.3.5置汇编地址计数器伪指令ORG,格式:ORG数值表达式功能:将数值表达式的值赋给汇编地址计数器。数值表达式的值须为065535之间的非负整数。【例4.13】给汇编地址计数器赋值。DATASEGMENTORG10;置值为10VAR1DW100H,200HORG+5;置的值为14+5,即为19VAR2DB1,2,+1,+2NEQU-VAR2;()=23DATAENDS,返回本节,4.3.6源程序结束伪指令,格式:END表达式功能:该语句标志整个程序的结束,是源程序的最后一条语句。,返回本节,过程定义伪指令,返回本章首页,格式:过程名PROC指令过程名ENDP,IInitprocmovdx,CS8259Amoval,ICW1outdx,almovdx,CS8259Bmoval,ICW2outdx,almoval,ICW4outdx,almoval,OCW1outdx,alretIInitendp,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!