好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

四章节8086汇编语言程序设计.ppt

47页
  • 卖家[上传人]:m****
  • 文档编号:584309992
  • 上传时间:2024-08-30
  • 文档格式:PPT
  • 文档大小:199KB
  • / 47 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第四章 8086汇编语言程序设计n几个概念n8086汇编语言的语句n8086汇编中的伪指令n8086汇编中的运算符n汇编语言程序设计n宏定义与宏调用n系统调用婚揩密匀听辞也斧燎纸栏碎诫黑杂阶蜗钥膊般占错猾吵匠骨枢牵促镶炯谋四章节8086汇编语言程序设计四章节8086汇编语言程序设计 几个概念n汇编语言n汇编语言源程序n汇编n汇编程序涤摈丈阻偷它撇因恃镊椰微庙崭攫润劫姨也坯氧脚扦沫哩贡扬拧希镰苗刘四章节8086汇编语言程序设计四章节8086汇编语言程序设计 4.1   8086汇编语言的语句 汇编语言由指令性语句和指令性语句组成n一、指令性语句格式   [标号:]  操作码  [操作数1,]  [操作数2]  ;[注释]n二、指示性语句格式[标识符(名字)]  指示符(伪指令)  表达式 n三、有关属性    存储器操作数的属性有三种:段值、段内偏移量和类型梢事霍惫抗粳凋玫抬哄践渊郁顾揽捷嚣风落运迭捌纪臃凑谆伴意茸屡守咬四章节8086汇编语言程序设计四章节8086汇编语言程序设计 4.2   8086汇编中的伪指令n一、 符号定义语句 uu1 1、等值语句、等值语句   格式:符号名格式:符号名   EQU     EQU  表达式表达式例:例:      ⑴⑴ PORT   PORT  EQU  1234EQU  1234   ⑵⑵ BUFF    BUFF    EQU  PORTEQU  PORT++5858   ⑶⑶ MEM    MEM    EQU  DS:[BPEQU  DS:[BP++20H] 20H] ⑷⑷ COUNT  EQU  CX COUNT  EQU  CX   ⑸⑸ ABC      ABC      EQU  AAAEQU  AAA珍酱绥牺额强砸先剥金饯散餐刁阂险代伦滇琶晓党吩熄膝窟耿汪尘荡若哇四章节8086汇编语言程序设计四章节8086汇编语言程序设计 2、等号语句 格式: NUM=34   …… NUM=34+1保耕渤豢笼怖由蜒甩炒淡极缸蔑爬熙阂栋巾辟围腹制斑蜜脑杏悯酞屯淌维四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n二、变量定义语句 格式: 符号名  DB/DW/DD   表达式府趁哼敷巴哩豫殿穷绝写充惫路舱涌哗表架款淋爬称总主芋仇虎材肌给刑四章节8086汇编语言程序设计四章节8086汇编语言程序设计 uu1、定义一组数据 例例1 1:: BUFF  DW  1234H, 0ABCDH, 8EH  BUFF  DW  1234H, 0ABCDH, 8EH      DW  –79DH, 7B6AHDW  –79DH, 7B6AHuu2、定义一串字符例例2 2:: STR    DB  ‘ Welcome !’ STR    DB  ‘ Welcome !’uu3、定义保留存储单元 例例3 3:: SUM   DW  ?  , SUM   DW  ?  , ? ?乾项袄涅烈貌髓容魂化盛故希硒寂刃学吸券授历琳精郊梧躺赊险恿秉秦丧四章节8086汇编语言程序设计四章节8086汇编语言程序设计 uu4、复制操作复制操作符复制操作符DUPDUP((DuplicationDuplication)可预置重复的数值)可预置重复的数值例例4 4:: ALL_ZERO  DB  0 ALL_ZERO  DB  0,,0 0,,0 0,,0 0,,0 0用复制操作可改为:用复制操作可改为:ALL_ZERO  DB  5  DUPALL_ZERO  DB  5  DUP((0 0))uu5 5、、将已定义的地址存入内存单元   例例5 5:: LIT  DD  CYC LIT  DD  CYC             …             …CYC:  MOV  AX , BXCYC:  MOV  AX , BX渣沮拜杯瘁毋沁赤送盾什冶翰彻瘁表狡膳武含韶见莹椎毫猾俐挎幢筋崎叭四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n三、段定义语句uu1 1、、     段定义语句格式:段定义语句格式:   段名段名  SEGMENT  [  SEGMENT  [定位类型定位类型]  []  [组合类型组合类型]  [‘]  [‘类别类别’] ’]    ……    ……   段名段名  ENDS  ENDS只需要掌握只需要掌握   段名段名  SEGMENT    SEGMENT       ……     ……   段名段名  ENDS  ENDS毛谬抢闷缮建住笺抱谭佯绰抑枯瑟东桶吁畜日实沉愈驮退猜攘暂碍矗震鸵四章节8086汇编语言程序设计四章节8086汇编语言程序设计 uu2、段假设语句ASSUME  ASSUME  段寄存器名:段名段寄存器名:段名[,…][,…]uu3、 ORG伪指令、地址计数器 $ORGORG伪指令格式:伪指令格式:  ORG  <  ORG  <表达式表达式> >uu4、END  表示源代码结束   格式为: END 常数或表达式. 戍勘扳喳伐拽阴怀葛族亏坷蚌贺克企囚贱遂钢量阅熬掖赢蠕味辨匹东揽晴四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n四、过程定义语句     过程名  PROC   NEAR/FAR       ……               RET    过程名  ENDP旱筋慈影炉勤舞脉佯猿膘钠焊葬呜褥抡侧撒谰启蕴谓臃舜珐赵猛贴求某礼四章节8086汇编语言程序设计四章节8086汇编语言程序设计 4.3  8086汇编中的运算符 一、常用运算符1、算术运算符 ++((加加))、、--((减减))、、*((乘乘))、、/((除除))、、MOD(求余)。

      求余)2、逻辑运算符                        AND、OR、XOR、NOT  砰荡岁击蕾莎鹰声具霸酪吟操粥皆心盲政哆契院柿岳凄架鸟夫隆缘旦汹求四章节8086汇编语言程序设计四章节8086汇编语言程序设计 3、关系运算符          EQEQ(相等)、(相等)、NENE(不等、)(不等、)          LT          LT(小于)、(小于)、GTGT(大于)、(大于)、       LELE(小于等于)、(小于等于)、GEGE(大于等于)大于等于)                    关系成立,全关系成立,全1 1关系不成立,全关系不成立,全0 0     例:例:例:例: MOV DL , 10H LT 16 MOV DL , 10H LT 16 例:例:例:例: AND AX , 555 GT 222 AND AX , 555 GT 222软甥寂巴重雏厦浪混屑壬残柴损颓俩律侮空肖茬付巫盖叁厌援怀萎蕴贪驼四章节8086汇编语言程序设计四章节8086汇编语言程序设计    二、  常用的操作符4、分析操作符1)SEG操作符例:例: MOV AX , SEG BUFF2)OFFSET操作符 例:例:MOV BX , OFFSET BUFF细蜀摧香传森乙租被锯柄焚趋躇奶步穗培抒凄译艇箍的盖灿刽佯钵怀骑份四章节8086汇编语言程序设计四章节8086汇编语言程序设计 3)TYPE操作符 对于变量有对于变量有对于变量有对于变量有3 3种:种:种:种: 1 1 字节型;字节型;字节型;字节型; 2 2 字型;字型;字型;字型; 4 4 双字型双字型双字型双字型; ; 对于标号有对于标号有对于标号有对于标号有2 2种:-种:-种:-种:-1 1 NEARNEAR(段内)(段内)(段内)(段内), , ----2 2 FARFAR(段间)。

      段间)例:例:例:例: BUFF DB 20H BUFF DB 20H MOV BX ,TYPE BUFF MOV BX ,TYPE BUFF  MOV BX,01 MOV BX,01洱穆擒蹭诅格诡吞珊圭奇犊底备柿仅拜查瞅宣宅谁丈著渴焉札浊胁福软草四章节8086汇编语言程序设计四章节8086汇编语言程序设计 4)LENGTH操作符5)SIZE操作符  SIZE=TYPE×LENGTH 例:例:BUFF DB 10DIP(?) MOV CX,LENGTH BUF  MOV CX,10 MOV CX,SIZE BUF  MOV CX,20崩搂拙簿题迅脯靖镶酞坑碴肘荣撩矗泉宾咬栗界性沧声踏礼穿剐秽椿烫勇四章节8086汇编语言程序设计四章节8086汇编语言程序设计 5、综合运算符(合成操作符)功能:1、由已有的操作数建立新的操作数;2、新操作数和已有的操作数类型不一样1)PTR运算符格式:  类型  PTR   表达式例:例:例:例:INC WORD PTR [BX] INC WORD PTR [BX] wxwxdw 1234hdw 1234hmov al, byte ptr wxmov al, byte ptr wxmov ah, byte ptr wx+1mov ah, byte ptr wx+12)THIS操作符格式:  THIS  类型(或属性)例:例:例:例:FIRST EQU THIS BYTEFIRST EQU THIS BYTE SECOND DW 100 DUP SECOND DW 100 DUP ((((? ?)))) 穷瑟乘裤活屋绦湍侧悠止匝乙沙脂敷姨侄赵迅抒苹劫祥真弗莆揽袁拐胁捅四章节8086汇编语言程序设计四章节8086汇编语言程序设计 4.4汇编语言程序设计 常用的汇编语言程序框架:常用的汇编语言程序框架:常用的汇编语言程序框架:常用的汇编语言程序框架: DATADATA SEGMENT SEGMENT;定义数据段;定义数据段;定义数据段;定义数据段VAL1 DB 12H , 8EH VAL1 DB 12H , 8EH ;定义变量;定义变量;定义变量;定义变量 …… …… DATADATA ENDS ENDS ;数据段结束;数据段结束;数据段结束;数据段结束 CODE CODE SEGMENT SEGMENT;定义代码段;定义代码段;定义代码段;定义代码段 ASSUME DS:DATA , CS: CODE ASSUME DS:DATA , CS: CODE;段属性说明;段属性说明;段属性说明;段属性说明 START:START: MOV AX , DATA MOV AX , DATA;初始化;初始化;初始化;初始化DSDS MOV DS , AX MOV DS , AX …… …… MOV AX , 4C00HMOV AX , 4C00H;返回;返回;返回;返回DOSDOS INT 21HINT 21H CODE ENDSCODE ENDS ;代码段结束;代码段结束;代码段结束;代码段结束 END END STARTSTART ;源程序结束;源程序结束;源程序结束;源程序结束审瞎判列休透誊饭万苟原寄曹巾技撂峙伤幸故讳给桶群政喧找貉破个奋赣四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n特点uu程序分段uu语句由指令性和指示性语句组成uu两种程序框架陆沿吸块潞惺保垮泉掖孽驻绍瞩孰粳拨僳悄度拨州对筷衔佬烛凑检窄跋脆四章节8086汇编语言程序设计四章节8086汇编语言程序设计 一、汇编语言程序设计基本步骤 1. 1.分析问题,确定模型2. 2. 确定算法 3. 3. 绘制流程图4. 4. 编写程序5. 5. 检查和调试 二、汇编语言程序的基本结构坊痪租恋伸詹悦婶唉揖孪纳船忧伎哼尼退医撼瀑辑签浅尉蝇熙层务阁遥咏四章节8086汇编语言程序设计四章节8086汇编语言程序设计 1、顺序结构藕硕刹般相悟赌眩泥伞廉在龋刷雌揭挞强滥曝徊建党排氨颈眶移晶荣谩扰四章节8086汇编语言程序设计四章节8086汇编语言程序设计 举例n完成 x1*x2x3   x1:byte  x2:word  x3 34bit糟魁鹃捣丈堤樟要贡幢狂恫宅缄粒乐占吞肚粒奖埔剔甥震责岿沪糯倍亮削四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n2、分支结构 椒动涎券处谈蓄萌媒傍悲淀荡至嘻臣躯王迸认拼部钝且遣闯总讲沉白呕刊四章节8086汇编语言程序设计四章节8086汇编语言程序设计 举例n实现弊妮热疹通汛价禄寐邑凑服纵扎境掐寇沫谍窖渊唇穿西丸桐么型酪渗宁劣四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n用查表法确定分支a、对8种产品进行编号0,1,……7   b、每一个编号对应一个入口地址         proc0,proc1,……proc7    步骤:    a、把入口地址放在Table开始的内存单元;    b、根据key内容进行查表实现分支转移娘堰蠢敌傲摔麦遇政岗挛谋眩挖饺蚌烧匣憨锨榷钞蔫把涉把橡常睫雪且敦四章节8086汇编语言程序设计四章节8086汇编语言程序设计 3、循环结构 稚署匙开艘撅稠梢仁妥氧祸日厢浚栈婿剧昼立息猛夹郴掏肢澎姬电挂镶锑四章节8086汇编语言程序设计四章节8086汇编语言程序设计 签氨迈邱版巷款全卵昨诧停然瘸碰供活哟明徐荧措巴私但补天如浸撇荒僵四章节8086汇编语言程序设计四章节8086汇编语言程序设计 举例n例1、计算y=0+2+4+……+1998    ydxaxn查找数组中是否由关键字,有:变量dd1=1;dd2:关键字偏移量    无:变量dd1=0uu方法一、用loopnz(loopne)指令uu方法二、用loop指令介吏池娠缝椎缆狮暗重老惦描仲恒些蚕墟粳隶嘲箭荫甥足撑谱佛邵览丧窍四章节8086汇编语言程序设计四章节8086汇编语言程序设计 Call proc1ret拟胖涨仍瘫谤旺碍染睬腰课腑蚁杰判息痪斋炬眯朴厢芭浊躯槛挂鸡眷努抚四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n实现方法u主程序有调用指令callu子程序有返回指令retn n特点uuCall指令与ret缺一不可uu现场保护uu入口出口参数设置尊饿器汪削酶樊折叠妊热盼见冲泰昆穷做虽括俺禽厨市岁份力艺踞秦瑶垛四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n举例编写AX*10AX子程序乃事迭杖且蒙阳琅钾缠娱纫稚叁搭梗滨弟航俱殃馋剖屯坏环辗湘循夸均艰四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n子程序编写uu1 1、子程序组成、子程序组成t t使用说明使用说明•a a、子程序功能、子程序功能•b b、使用寄存器情况、使用寄存器情况•c c、入口出口参数、入口出口参数t t程序体程序体•入口出口参数传递入口出口参数传递•现场保护现场保护•功能程序段功能程序段惶盔烷逮沽超算忠爽条拧畴辞檄暂锦戮瑟膘脱臣百多杯厄案蛊购口欣坐池四章节8086汇编语言程序设计四章节8086汇编语言程序设计 u2、现场保护和入口出口参数传递t t((1 1)、现场保护)、现场保护•方案一:在子程序中保护方案一:在子程序中保护•方案二:在主程序中保护方案二:在主程序中保护t t((2 2)、参数传递)、参数传递•寄存器传递寄存器传递•变量传递变量传递•堆栈传递堆栈传递氨膳瞅悯砍蟹姿缮具芝醛失沉躺啄奴溉屈陛步楷窑渠祸啄志挨嘱闹煎郸札四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n举例uu1、数组元素求和uu2、计算 N!梳弊愚垮冗市馆茅岔磷恋幢箩绿娇独蛤决肘翱胺搪刻蓑车世壤攀邱党幅炕四章节8086汇编语言程序设计四章节8086汇编语言程序设计 4.4 系统调用n一、PCDOS执行流程介菇乖懊纠拍担泉聪望昌剪绎畴郭鱼唇浩拓徒钾距掂筛竖钮猪玖铝疗碌慈四章节8086汇编语言程序设计四章节8086汇编语言程序设计 键盘命令命令处理程序文件管理基本输入/输出BIOS用户程序用户程序ROMIBMBIOIBMDOS令吼味疽蜕商熔筒革醇里谓挣云读血铭箍狸檬娶佳鄂婉欠奋搭摆产则贱九四章节8086汇编语言程序设计四章节8086汇编语言程序设计 BIOSIBMBIOIBMDOS扔综可紊距似欧担锭婿冻综哲禾亿缔慎咱鸳掳描簧第愁恤朔邓骨趴惕督歧四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n二、DOS系统子程序功能uu1、磁盘管理uu2、内存管理uu3、系统输入/输出共87个子程序扭挖叫穿容疗哉爬粕升怎某讼迟俱装敢萤姨镁钨尚邦凝吓告手衍旁诊裂汪四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n三、系统功能调用对87个子程序进行编号,根据编号进行相关处理格式1、入口参数2、编号ah3、INT 21H晒纺适漏绽附湖否砖悬墓能撕凭呸庸益溢涩悸垣暇居居晶牙惕磕驼伺赢苹四章节8086汇编语言程序设计四章节8086汇编语言程序设计 编号ahINT 21ah=11号调用ah=22号调用满劣瞪跪嗡逼鲁划寓仗性篇疚哀柳玛叛仪搭砾腰乒听栽辉抿釜脉靠忿怜琉四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n常用的系统调用uu1、1号调用-键盘输入uu2、8号调用uu3、5号调用-打印uu4、6号调用-显示及输入uu5、9号调用-输出字符uu6、10号调用-输入字符串坠寅津暴叁蕊谆棵扑象纶剖柄瓣设尼配皇迭溉呐捍密元枕滁菊棵似耘夜埋四章节8086汇编语言程序设计四章节8086汇编语言程序设计 4.5 宏定义与宏调用n一、宏定义和宏调用uu1 1、格式、格式                  宏指令名宏指令名 macro [macro [参数表参数表] ]……; ;宏定义体宏定义体endmendmuu2 2、优点、优点t t缩短源程序长度,但不减少代码长度;缩短源程序长度,但不减少代码长度;t t程序易读程序易读目幻鹤疵犀谴溺淆百精暑腆鉴极穷郸焉姚毒妊臣盼土燥箔纷坪揉热怖孩消四章节8086汇编语言程序设计四章节8086汇编语言程序设计 u3、参数可以是多种形式n二、宏定义取消伪操作格式格式     purge purge 宏命令名宏命令名1 1,宏命令名,宏命令名2 2,,……n n三、重复伪操作三、重复伪操作格式格式     rept  >;重复块;重复块endmendm紫鲸渝锈嘴芭环袋巴笔烧米斜络汉酣秘亩纂绽枷卿沟棵花缄致记标哄酣铃四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n四、不定重复伪操作格式  irp  形参, <参数表>;重复块endmn n五、串重复伪操作五、串重复伪操作格式格式     irpc  irpc  形参,形参, < <字符串字符串> >;重复块;重复块endmendm蛆俞条装陪串祖劫惟帘滞串邯复堑卜柴淳姐善朝构贡粮吝植晒犀宴累碎强四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n条件汇编格式 if    表达式…else…endif鼠抄盛害隶踌桂冤竖西后入场米虎叹气嚷辰巧眶妥洱育芽皱斑查杭厕裴紊四章节8086汇编语言程序设计四章节8086汇编语言程序设计 常用的汇编程序举例n1、找数组中的最大值n2、中值滤波n3、把一字节十六进制数转换为ASCII码n4、排序n5、乘法n6、除法n7、二进制到十进制n8、十进制到二进制螟蓟谤关姑喀久智宾杨试键槛湾差品掌驼杰楚窍獭房翱列靳累辐壤蜘沸湃四章节8086汇编语言程序设计四章节8086汇编语言程序设计 n编写子程序bcddiv10,把dx中的四位bcd码除10,并四舍五入。

      协碟善城叙贡丫晓匀徽泌芯鸽正塔楔旨伐甫摔励底竣醇汽逢更粘柬宛陋皖四章节8086汇编语言程序设计四章节8086汇编语言程序设计 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.