计算机组成原理与汇编语言程序设计.ppt
《计算机组成原理与汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理与汇编语言程序设计.ppt(86页珍藏版)》请在课桌文档上搜索。
1、,计算机组成原理与汇编语言程序设计,第5章,慨队哺帽巡惊痹诣罐隙叠抓峻襟薛颈太牙施瑶丢感设集厢额煽狡丢定再疥计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,重点章节 1掌握:常用汇编语言语句、伪指令、源程序的一般结构,顺序程序设计,分支程序设计,简单循环程序设计,子程序设计;能够读写常用汇编语句编写的程序段。2理解:宏操作伪指令,系统功能调用。3了解:汇编语言程序的开发方法。,沼池破卵乾被晾杂身梦烃靳闺构孟扑置为园牢郭贾腥影压瘟垒寅矾鹃冻皑计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,汇编语言程序是符号化的机器语
2、言,汇编语言必须经过“汇编”(即 翻译)转换成机器语言指令代码,再由计算机识别并执行。汇编语言源程序 目标程序汇编语言源程序的基本组成单位是语句。源程序中使用的语句有三种:指令语句、伪指令语句和宏指令语句(或称宏调用语句)5.1概述5.2汇编语言语句一、指令语句格式 指令语句的一般格式如下:标号:指令助记符 操作数;注释1标号:标号是机器指令语句存放地址的符号表示,代表该指令目标代码的第一个字节地址,后面必须紧跟冒号“:”,在指令语句中,是任选字段。2指令助记符:指令助记符为语句的核心成分,表示了该语句的操作类型。,汇编程序,操作数的有无、有几个,取决于指令助记符,翻译后,没有对应的目标代码,
3、曝涧琼韧俐龟赎错鸳练偷本捻蚤熊鸡苑岸愁洽杉涨括蝗庇药侮嚼泞畦责赎计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,3操作数:操作数表示指令助记符的操作对象。4注释:注释均以分号开始,它可占一行或多行,一般放在一条语句的后面。例:一项是含有4个字段的一条指令语句:LOP:MOV AX,0000H;将AX清零 标号 指令助记符 操作数 注释 例:以下是含有4个字段的一条指令语句 INC CX二、伪指令语句格式如下:符号名 伪指令符 操作数;注释1符号名:符号名是伪指令语句的一个可选项。允许是常量名、变量名、过程名或段名。注意符号名后无冒号。2伪指令符:伪指令符
4、指定汇编程序要完成的具体操作,如数据定义伪指令DB、DW、DD,段定义伪指令SEGMENT,假定伪指令ASSUME等。此字段必不可少。,缄协遭膏掩命塞铸申汁青坦蹈较颊援佐捌傣着哉俏鹰吟卧率肃齿秤斑俱净计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,3操作数:伪指令后面的操作数可以是常数、字符串、变量、表达式等,其个数由具体的伪指令决定,各个操作数之间必须以“逗号”分隔。4注释:伪指令的注释必须以“;”开始,其作用同指令语句中的注释部分。伪指令语句是指示汇编程序如何汇编源程序的命令语句,在汇编时,它不产生目标代码,由汇编程序解释他的意义逼供能立即完成相应的
5、操作。例:以下是一条伪指令语句:VAR1 OB 12H;给VAR1分配一个字节单元,初值为12H 三、标识符 标识符是指令语句中标号和伪指令语句中的符号名和统称,其组成规则如下:(1)字符个数131;(2)第一个字符开始,可以是字母或特殊字符,特殊字符有5个:?_$.;(3)第二个字符开始,可以是字母、数字或特殊字符;(4)标识符不能与系统专用保留字(伪/指令助记符)相同,汤纵赵愉险福扯鲸狼烷惩陆颐秸跃驳方沃北状淑森楼起拂胡自贩意炎缚形计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,例如:标识符:?ABC、_VAR、.234、A2 非标识符:1ABC、V
6、AR、ADD、256 总结:伪指令和指令的通用格式:1311.名字字段(Name Field)名字字段的三个注意事项:开头2.操作符字段(Operator Field)保留字3.操作数字段(Operand Field)4.注释字段(Comment Field)5.3汇编语言数据5.3.1符号定义语句1、等值伪指令指令格式:符号 EQU 表达式/符号EQU伪指令的左移是将表达式的值或表达式赋给EQU左边的符号例:用符号标识常数、数值表达式 NUM EQU 10H COUN EQU 1234+34-67 VAR DB NUM MOV AX,NUM,符号定义后可在表达式中使用,摹殃蚂倍列蠢欣鸯形魁豹
7、观从寺狡卓瞻忍搁磕婴耐埋烙遥捂疹疗蔚树脆婴计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,例:用字符代表地址表达式、变量名和标号 ADR EQU ES:BXSI VB EQU DATA_BYTE+1 L1 EQU FAR PTR SUB1 MOV ADR,AL ADD BL,VB JMP L1例:用符号代表寄存器、指令助记符 AREG EQU AX M EQU MOV MOV AREG,1234H M CX,BX 等值伪指令语句仅在汇编源程序时,作为替代符号用,不产生任何目标代码,也不分配存储单元。在同一源程序中,同一符号不能用EQU伪指令重新定义。例如
8、:,瞬疑熙通萌鞘惠陨盼突蔚划余帅侯挫莎痰格森须壤扶滨喘谷衬疤愉农皋羞计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,M EQU MOV M EQU MUL第二条语句在汇编时,会产生符号重新定义的语法错误。2、等号伪指令格式:符号表达式这种伪指令的含义和作用与EQU等值伪指令相同。但有如下差异:(1)等号伪指令可以重新定义符号。例如:CONT10 M100 CONTCONT10 M30(2)等号伪指令不可以重新定义汇编指令,EQU可以,年哭膛扦场场氰豆窗目晒楷偷恕刺淮锻轴妈烟龄声蜕小睬轩氛扛抗晕俗哲计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程
9、序设计,五、汇编语言程序设计,5.3.2数据定义语句数据定义伪指令语句格式如下:DB变量名 DW 表达式1,表达式2,DD DB:为定义的变量分配字节单元DW:为定义的变量分配字单元DD:为定义的变量分配4个字节单元/双字单元数据定义语句必须出现在某个逻辑段中例:在DATA1数据段中定义了3个变量:DATA1 SEGMENT VAR1 DB 10H VAR2 DW 1234H VAR3 DD 12345678H经过定义后的每个变量都有3个属性:,标识符条件,伪指令符,腕勋咸下饯喻忍拷泪浙世壁充即牙务息葛氢纲仁犬饰慎役病啥峙逊抱敦宁计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计
10、,五、汇编语言程序设计,(1)段属性(SEG)表示变量存放在哪一个逻辑段中,它是用变量所在段的段基值来表示的。例如上面的DATA1数据段定义的VAR1、VAR2、VAR3 3个变量段属性就是DATA1段的段基值。(2)偏移量属性(OFFSET)该属性表示变量在逻辑段中相距段起始地址(段基址)的字节数。例如:VAR1的偏移量为0,VAR1的偏移量为1,VAR1的偏移量为2上述段和偏移量2个属性就构成了变量的逻辑地址。(3)类型属性(TYPE)该属性表示变量所占存储单元的字节个数:字节数据、字数据、双字数据。DB将变量定义为字节型(1个字节),DW将变量定义为字型(2个字节),DD将变量定义为双字
11、型(4个字节)。数据定义语句按照伪指令DB,DW和DD所确定的数据大小来给变量(或 存储单元)分配相应数量的存储单元,同时给这些存储单元预置由表达式 确定的初值。它们通常有以下几种形式:1、数值表达式 例如:DATA数据段定义了字节、字、双字变量,氦地乖啼吕车汪召撑降洪刚鳖奥十拢再榆渐士月啪电甥簧族航拖兄迫怕笨计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,DATA SEGMENTVARB1 DB 10HVARB2 DB 10,11,12 DB 0FFH,0VARW DW 1234H,5678HVARD DD 12345678HDATA END,VARB
12、1,10H,VARB2,0AH,0BH,0CH,FFH,00H,34H,12H,78H,56H,78H,56H,34H,12H,VARW,VARD,字,字,双字,缨画敖海獭减辊良伐捕夺污遗嘘酶显嫉璃滦筑符卜钻壶倒瓜柬冻秽黑猛盘计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,2、字符串表达式例如:以下是3个字符串变量的定义DATA_S SEGMENTSTRING1 DB ABCDSTRING2 DW AB,CD,ASTRING3 DD ABDATA_S ENDA、用DW伪指令定义字符串时,每一个字符串只能由12个字符组成,并分配2个字节存储单元。如果是两个
13、字符组成,则前一个字符的ASCII码放在高字节单元中,后一个放在低字节单元。B、DD定义字符串时,每一个字符串只能由12个字符组成,并分配4个字节存储单元。其中12个字符的ASCII码存储在两个低字节(顺序和DW伪指令相同)中,两个高字节放00H。C、DB伪指令定义字符串时,每个字符串中字符个数不得超过256个。,搁恰旅堰厂渤捎嗓刁啥凹瓜捕侮沽勉霖暗垢玛林蓝吸畦倍泌呀柳弄址铅伶计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,3、地址表达式(只适用DW和DD两个伪指令)4、?表达式5、带DUP的表达式 DB变量名 DW 表达式1 DUP(表达式2)DD D
14、UP操作符允许嵌套使用,即表达式2又可以是一个带DUP的表达式,STRING1,41H,STRING2,42H,43H,44H,42H,41H,44H,43H,41H,00H,42H,41H,00H,00H,STRING3,字,字,双字,字,评韦娜象礼鲜印通盛汀音蝇旦水欢纺掂噬赣观临伏摹惭倔谱既亦螺由娃遣计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,例如:BUF DB 100 DUP(0)以上语句定义了以BUF为首址,大小为100个字节,初值为0的数据存储单元。5.3.3数据一、常数1、数值常量,嗜淮浇蝇为枪琐拳卑先授插淆种深娱薄花甜鼎兹械掩籽拌恐盈纽
15、局烂骄鸣计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,2、字符串常量字符串常量是用单引号或双引号引起来的一个或多个字符。字符串常量是以各字符的ASC码表示的。如A用41H 表示,字符串A1B2用41H,31H,42H,32H表示。3、常数的使用(1)在指令语句的源操作数中作立即数。如:ADD AL,0F5H;常数作源操作数 MOV AX,AB;字符串作源操作数 MOV CX,12;字符串作源操作数(2)在指令语句中,常数可作为存储器操作数寻址方式中的位移量。如:MOV AX,DS:1000H;直接寻址方式 ADD 10HDI,CX;变址寻址方式 MOV
16、 AL,0ABHBX;基址寻址方式 SUB DX,1234HBPSI;基址变址寻址方式(3)在数据定义伪指令中,可作为分配单元的初值。如:DW 1234H;定义一个字数据 DB ABCD;定义4个字符的字符常量,胳光扔啦奏来巷硬叭鹏晾域路坍另提烛挨考瘴酱瓢涂阂硕决钨捏月鼓谢筒计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,二、变量1、变量(1)段属性(2)偏移地址属性(3)类型属性2、变量的使用在一个逻辑段中,用数据定义语句定义并预置数据初值后,变量名就作为存储单元的符号地址,代表了存放在存储单元的数据。引用变量名就是使用变量。其他语句中,使用分为两种情
17、况:(1)在指令语句中 一个地址表达式的值表示了存放操作数的存储单元偏移量。a、直接引用变量名对变量进行存取操作 例如:VAR1 DB 0FFH VAR2 DB?STRING DB ABCD MOV AL,VAR1;直接寻址方式 MOV VAR2,AL;直接寻址方式 MOV BL,STRING+1;放B字符的ASCII码放到BL中,庐哮噪殴惧致札枫缸晒黄世树光埃嘲在钨雕书灼扛趟戮盛九纲抚锰骸祁估计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,b、位移量部分使用变量名 例:VAR3 DB 10H DUP(1)VAR4 DW 10H DUP(?)MOV AL
18、,VAR3SI;变址寻址,用VAR3的偏移量 作为源操作数的位移量 MOV VAR4BXDI,DX;基址变址寻址,用VAR4的偏 移量作为目的操作数的位移量(2)在用DW或DD的数据定义伪指令中分配的存储单元中,将预置被引用变量的地址部分段基值和偏移量。如使用DW,则仅有被引用变量的偏移量;如使用DD,则前两个字节存放偏移量,后两个字节存放段基值。在这种情况下,不能在DB数据定义语句中引用变量名。例:VAR1 DB 10H DUP(0)VAR2 DW 10H DUP(AB)ADR1 DW VAR2 ADR2 DD VAR2,呻粱缸坡则或叭却瘤薄抒湛棱瘁青府伐洒辈揣立昧剂抱薛戚戏束血友卖畏计算机
19、组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,上述示例中,变量ADR1的内容(即字存储单元内容)是变量VAR2的偏移量,而ADR2双字存储单元的内容是变量VAR2的偏移量和段基值。三、标号指令语句的名字字段上的名字叫标号,它是一条指令的符号地址。标号是一条指令语句的符号地址。在汇编源程序中,只有在需要转向一条指令语句时,才为该指令语句设置标号,以便在转移类指令(含子程序调用指令)中直接引用这个标号。因此,标号可作为转移类指令的操作数,即转移地址。例:符号地址表示。NEXT:MOV AL,SI;带标号NEXT的指令 DEC CX JNE NEXT;标号NEXT
20、作转移指令的操作数,租锅佯秀莽频捂诞殖麓另悦经耽苍圣屡二忱损擂棱奔窗辅儡延捅畜沏剃声计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,和变量一样,每个标号也有3个属性:(1)段属性(SEG)段属性表示标号所在指令在哪个逻辑段,用这个逻辑段的段基值表示。(2)偏移量属性(OFFSET)偏移量属性表示标号所在指令离段起始单元之间的字节数(准确地讲,是指这条指令目标代码的首字节单元与段起始单元之间相距的字节数)同样,上述两个属性就构成了这条指令的逻辑地址。(3)类型属性(TYPE)类型属性表明了它的转移特性,即是作为段内转移还是段间转移的目标地址。标号的类型属性
21、有2中:NEAR(近):段内转移。本标号只能作为标号所在段转移类指令的目标地址。FAR(远):段间转移。本标号可作为其他段(不是标号 所在段)转移类指令的目标地址,苇冠著挨缎水纠璃蓑拣臂牙芥刹贡脓命臣悬峻剥仓段骋辐费翟江货旱活旋计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,标号的类型属性可以用下面两个方法来设置:1、隐含方式,某一指令选定一标号后,隐含为NEAR属性。例如:NEXT:MOV AX,1234H这时,标号NEXT就具有NEAR的类型属性。隐含方式不能设置FAR属性2、用标识伪指令LABEL设置类型属性。LABEL伪指令语句格式:名字 LAB
22、EL 类型 LABEL伪指令的意义是:指定名字(如标号、变量名)的类型属性。通常与指令语句、数据定义语句配合使用,补充设置类型属性。其使用分2中情况:A、LABEL语句与指令语句连用 SUB1_FAR LABEL FAR SUB1:MOV AX,789H,佬文漂曹馁想康鸡胞旋担给升烦牺递巴挥喷颧瓣刀往腺菩随总心伙套竹已计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,SUB1_FAR和SUB1有相同的段和偏移量属性的标号,但属性类型不同,SUB1_FAR是FAR,SUB1是NEAR。如果这一指令是某程序段的入口,则段内转移时可用SUB1作为入口,而其他段转
23、移到此程序段时,就要用SUB1_FAR作入口。B、LABEL语句与数据定义语句连用 例:DA_B1 LABEL BYTE DA_W1 DW 10H DUP(1234H)上述变量DA_W1的数据类型是字,因此每次对它的存取是按字(两个字节)进行。如:“MOV AX,DA_W14”指令就是把DA_W1起始的第5,6个字节组成的3个字节送AX。欲想取出第5个字节的内容,这时可用“MOV AL,DA_B1+4”。5.3.4表达式与运算符1算术运算符2逻辑运算符3关系运算符4属性与分离字节运算5数值返回运算符,虱它锈饭旋戚肛唉师延粗均踞谗钾日垢吮狮寒壹鸯耍坦愁仪倍穿午谦裙值计算机组成原理与汇编语言程序设
24、计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,1算术运算符算术运算符包括:(加)、(减)、*(乘)、(除)、MOD(求模)、(下标运算)、SHL(左移)、SHR(右移)几种,它既可 以用于数值表达式又可用于地址表达式。【例3.4】用算术运算符进行数值表达式运算。NUM1 EQU 25*4 50;NUM1=50 NUM2 EQU NUM1/7;NUM2=7 NUM3 DB NUM1 MOD 7;NUM3=1 VAR1 DB 1,2,3,4,5 VAR2 DB 12345 NUM4 EQU VAR2-VAR1;NUM4=5 NUM5 EQU 0FH MOVAL,NUM5 SHL 4;(
25、AL)=11110000B MOVBL,NUM5 SHR 4;(BL)=00000000B,峻奎语乐厢暑椭毫组淹痛蘑蹿丽卯内节玲慑靖兰嚷平匠酶淀镣冒媚壹老齿计算机组成原理与汇编语言程序设计计算机组成原理与汇编语言程序设计,五、汇编语言程序设计,移位运算符与移位指令是完全不同的。移位运算符是对某一具体数(常数)在汇编时完成移位的,而移位指令是对一个寄存器操作数或存 储器操作数,在程序允许时完成的。下标运算符 只用于地址表达式,它表示地址相加,常用于存取数组 元素。如:下面两条指令语句是等价的。MOV AX,ARRAY3 MOV AX,ARRAY+32逻辑运算符逻辑运算符包括:逻辑乘(AND)、逻
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 汇编语言 程序设计
链接地址:https://www.desk33.com/p-620058.html