汇编语言第3章指令系统和寻址方式.ppt
《汇编语言第3章指令系统和寻址方式.ppt》由会员分享,可在线阅读,更多相关《汇编语言第3章指令系统和寻址方式.ppt(80页珍藏版)》请在三一办公上搜索。
1、IBM-PC汇编语言程序设计,邵遥肋茸绽封衔隶决违滨肛套校贪涉批酣个蚌脱东肤剐晦韧录逆拦碱炎诣汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,第3章 指令系统和寻址方式(Instruction system and Addressing mode),指令简介:操作码 操作数 1.操作码 2.操作数:无操作数,单操作数,双操作数,三操作数,淌额嘎兴玉夹瞳宽娇挺虐桓裂他浅伯势犁腿基驯勤住缀倚醚译赣饿裤笋意汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,3.1 寻址方式(Addressing mode),有效地址(EA):即上章的偏移地址 段超越 寻址方式
2、(一)与数据有关的寻址方式1.立即数寻址(Immediate addressing)例:mov AL,5(AL)=5用途:初始化,殴测烟或恤尸扯焕冤珐奎冈迂寨面恫烃沤瞎时丝抿大递田拯碴痴毖懈默喀汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,2.寄存器寻址(Register addressing)例:mov AL,DH(AL)=(DH)mov BX,SI(BX)=(SI)寄存器有:AX,BX,CX,DX,SP,BP,SI,DI AH,AL,BH,BL,CH,CL,DH,DL 用途:单个数据传送,屯扩她呸立困昧愧良凛胁跌渣汉疗收杖缔娄珍换钮荆炽踌卸舒涸轿蜂秃袱汇编语言第3章
3、 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,以下五种寻址方式均对内存进行的物理地址=段首地址x16+EAEA=基址(base)+变址(index)+偏移量(displacement)3.直接寻址方式(Direct addressing)EA=displacement注:默认段是数据段物理地址=(DS)*16+EA,途掳郡罪柴坎霹兴苔沧李找茶劈掉意蚤辅哄音践吹豆浚词云明迢绝摧芒捅汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,例:mov AL,1200H(DS)=1000H EA=1200H物理地址=DS*16+1200=11200H 若:(11200)=3AH
4、则,(AL)=3AH允许段超越。例:mov AL,ES:1200H用途:处理单个数据,邹洪湾俘繁和体倦狙意资羹步塘鹊拷幅固棕慌瑚缚煞奋凭狐顶酚没躺帮君汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,4.寄存器间接寻址方式(register indirect addressing)EA=基址(base)或变址(index)基址寄存器有:BX,BP变址寄存器有:SI,DI注:默认段是数据段和堆栈段(SI)物理地址=(DS)*16+(BX)(DI)=(SS)*16+(BP),吸魂啮戌柑力后筋川辖杖诞吴帚则咳贫培制缔囊吴痊悔阵鉴拨甭循表斋蚜汇编语言第3章 指令系统和寻址方式汇编语
5、言第3章 指令系统和寻址方式,例:mov AX,BX(DS)=1000H(BX)=1200H物理地址=DS*16+(BX)=DS*16+1200=11200H 若:(11200)=34H,(11201)=12H则,(AX)=1234H允许段超越。例:mov AL,ES:BX用途:处理成组数据(举例说明),尝模竭忆宅腥适袍缆危剖鞠烦杨究膛饲蓉雀缓柏左黑伺惹孔巾陷省循啸桔汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,5.寄存器相对寻址方式(register relative addressing)EA=基址(base)或变址(index)+偏移量(displacement)
6、基址寄存器有:BX,BP变址寄存器有:SI,DI注:默认段是数据段和堆栈段(SI)物理地址=(DS)*16+(BX)+displacement(DI)=(SS)*16+(BP)+displacement,狼透样鞍蚕胞律关乃耕债豺塞遮喇咙姑酿沂胚慷娘项范胃擅雅撕掘审捌西汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,例:mov AX,VARBX(DS)=1000H,(BX)=1200H,VAR=1000H物理地址=DS*16+(BX)+VAR=DS*16+1200+1000=12200H 若:(12200)=34H,(12201)=12H则,(AX)=1234H允许段超越。
7、例:mov AL,ES:VARBX用途:处理成组数据(举例说明),抉郸搁排藉揭狮企诱忿巧映敦箭佣祝诚搜英每喝御夸庸战邪吃柳著于抡墨汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,6.基址变址寻址方式(based indexed addressing)EA=基址(base)+变址(index)基址寄存器有:BX,BP变址寄存器有:SI,DI注:默认段是数据段和堆栈段 物理地址=(DS)*16+(BX)+(SI)(DI)=(SS)*16+(BP)+(SI)(DI),播酞耘苔栽沏傻搽香询抹雕矢摸羞省伦翔川寂抛禄旋森酗醇瀑傈择吝渝狗汇编语言第3章 指令系统和寻址方式汇编语言第3章
8、 指令系统和寻址方式,例:mov AX,BXDI(DS)=1000H,(BX)=1200H,(DI)=1000H物理地址=DS*16+(BX)+(DI)=DS*16+1200+1000=12200H 若:(12200)=34H,(12201)=12H则,(AX)=1234H允许段超越。例:mov AL,ES:BXDI用途:处理成组数据(举例说明),诱攻辆蒜刻萨锐贬让俘泼埋俄腋兽渺降拦拓宋登冤姿渐墟币鸥搜茨盂率辩汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,7.相对基址变址寻址方式(relative based indexed addressing)EA=基址(base)
9、+变址(index)+偏移量(displacement)基址寄存器有:BX,BP变址寄存器有:SI,DI注:默认段是数据段和堆栈段 物理地址=(DS)*16+(BX)+(SI)+displacement(DI)=(SS)*16+(BP)+(SI)+displacement(DI),猪乔麻眨抒询侣意蚂流赛邯鹏睹台便警蛋御钎校绎姥辩牟掇艾叠畔抑戎甲汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,例:mov AX,ARRAYBXDI(DS)=1000H,(BX)=1200H,(DI)=1000H,ARRAY=1000H物理地址=DS*16+(BX)+(DI)+ARRAY=DS*
10、16+1200+1000+1000=13200H 若:(13200)=34H,(13201)=12H则,(AX)=1234H允许段超越。例:mov AL,ES:ARRAYBXDI用途:处理成组数据(举例说明),水暇搞醒改醋词刷哑已悦烁爱膳常炼袒豆玩澎拒淋爸营橡偷天式劣绩橙敛汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,(二)与转移地址有关的寻址方式-寻找指令位置物理地址=CS*16+IP段内寻址:修改IP段间寻址:修改CS,IP1.段内直接寻址(intrasegment direct addressing)(IP)新=EA=(IP)旧+D8或16 分类:短跳转 D8 例
11、:JMP SHORT next近跳转 D16 例:JMP NEAR PTR AGAIN,蒸宇皇华姚祷驭故阂欠坏孽锐谐潦旺腹爽甩新戚睫誓颗获言殉渝奎干醛噬汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,2.段内间接寻址(intrasegment indirect addressing)(IP)新=EA=寄存器或存储单元的内容寄存器:所有寄存器寻址方式可用的寄存器存储单元:所有存储单元寻址方式均适用例:JMP SI(IP)=(SI)JMP WORD PTR VAR或简写JMP VAR(DS)=1000H,VAR=2000H 存储单元的物理地址=(DS)*16+VAR=1200
12、0H(12000H)=1234H 则,(IP)新=1234H,匠尺粳纬潭宿荫悍律宰缺础钧豌涯屯昨妓讳氨耻奄母已厅植法携敞记骏纠汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,3.段间直接寻址(intersegment direct addressing)(IP)新和(CS)新来源当前指令例:JMP FAR PTR NEXT,玫竖澎砧梨命拘毛炊最涝货幢镜蕾膝幌醇酋左背问秋凶遣集参赠臻崖伶筋汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,4.段间间接寻址(intersegment indirect addressing)(IP)新和(CS)新 来源存储单
13、元的内容存储单元:所有存储单元寻址方式均适用例:JMP DWORD PTR VAR(DS)=1000H,VAR=2000H 存储单元的物理地址=(DS)*16+VAR=12000H(12000H)=1234H,(12002H)=2000H 则,(IP)新=1234H(CS)新=2000H,丈笋砍懦恭训橡己娟啥惠阻票眷槽眉寅陌爹放诗札赦订伦综船沤留坏彦第汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,3.2 程序占用的空间和执行时间,窃撅疆瓷确票獭扼盎酵深峰莱坦墅器纸扩伎涂抡豺泼巧糖氛苦骤据拉礼陷汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,3.3
14、80X86的指令系统,一、数据传送指令1.通用数据传送指令MOV 传送(move)格式:MOV DST,SRC;B/W/DW操作:(DST)(SRC)MOV mem/reg1,mem/reg2 MOV reg/mem,data MOV segreg,mem/reg MOV mem/reg,segreg,溯啡权柒泞皑慰顶燃鸥牺沤捷锑在在锨饿栋衍倚蹦术抓旅默加逾歹雏倔削汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,*双操作数要求:除源操作数是立即数以外,两个操作数中必须有一个是寄存器。不允许向CS传送数据立即数不能向段寄存器传送数据不允许在两个段寄存器之间传送数据立即数不能
15、作目的操作数双操作数,类型要匹配,雌幻岛犹瞒抗织墒枢赣酬几盼虾瞅狐太还熔源忙逝帝旺恨坚矢芯偿堰纶控汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,1.指出下列指令源操作数的寻址方式:(1)MOV SI,10(2)MOV SI,DI+2 MOV SI,DI(4)MOV SI,10 MOV SI,BX(6)MOV SI,5BX+DIMOV SI,BP+DI 2.判断下列指令对错:(1)MOV SS,1000H(2)MOV DS,ES(3)MOV CS,AX(4)MOV 5,AL(5)MOV AX,BL(6)MOV BX,SI,饰韧褐壬灰砂敛舀谁摔侈烘贿雁赠但享榨并鼎庆徒霸砂舵
16、撂埠丁蛤焚王目汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,PUSH 入栈指令(push onto the stack)格式:PUSH SRC;W*单操作数:除立即数以外的其他寻址方式 push axPOP 出栈(pop from the stack)格式:POP DST;W*CS 不能作操作数 POP word ptr BXXCHG 交换指令 格式:XCHG OPR1,OPR2*不能用于段寄存器,立即数或存储单元之间,扇硼幽绚巍菠戴傣惋吧曝纪畸墩戏万狮弯丑臭泻赞烽副征攒塞唉处器富褂汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,1.下列寄存器组中
17、在段内寻址时可以提供偏移地址的是()A.AX,BX,CX,DX C.SP,IP,BP,DX B.BX,BP,SI,DI D.CS,DS,ES,SS2.8086/8088确定下一条执行指令物理地址的计算表达式是()A.(DS)16+EA B.(ES)16+EA C.(SS)16+EA D.(CS)16+EA 3.下列pop指令中错误的是()A.POP CS B.POP BETABX C.POP AX D.POP CX,顷总斟旱唁宁淤巾制永敢苫韭骤带蓝踏坠运环带嚎缩瓣狄赁繁膝典恢涡初汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,第3章 指令,2.累加器专用传送指令IN 输入
18、(input)长格式:(00HFFH)IN AL,PORT;B IN AX,PORT;W 短格式:(0000HFFFFH)IN AL,DX;B IN AX,DX;W,翰兢杜羊维冉兽谎锡闰吉轰册龋桨视澳俊腊坝偿椅戒克悉抖逝副赞姿响刨汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,OUT 输出(output)长格式:(00HFFH)OUT PORT,AL;B OUT PORT,AX;W 短格式:(0000HFFFFH)OUT DX,AL;B OUT DX,AX;W,哩患夯促吱喂归纠及辜八榆洞崇酚渭暮焙俩废灾褐塞寨晦囤聘渠忿郸访朗汇编语言第3章 指令系统和寻址方式汇编语言第3章
19、 指令系统和寻址方式,例:某接口的命令寄存器(port=126)的D7位控制成组数据传送。发送成组传送命令。MOV DX,126H IN AL,DX OR AL,80H OUT DX,AL,患获圈友窜富壕峭讲韶描币葫荡朵泌衙逼劝定慎圃中项殿棺有烙硅揉遭九汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,XLAT 换码指令(translate)*专用AL,BX 表长不超过256例:LEA BX,TABLE;(BX)=0040H MOV AL,3 XLAT 指令执行后(AL)=33H,诚锻寥抚口沫超缄港殴太变枫法函雹遣蜘勿枝瞒仗蹲宰蝴先赣贮了诲弓戏汇编语言第3章 指令系统和寻址
20、方式汇编语言第3章 指令系统和寻址方式,3.地址传送指令LEA 有效地址送寄存器(load effective address)格是:LEA REG,SRC*REG 不能用段寄存器(以下两个指令均是)例:LEA BX,LIST MOV BX,LIST LEA AX,BX,纪嘻酮哟足旧方俺壶乱警透胜碴肢颊淀涵伏啦嘻褥影絮声瞎怎舶托会鲍后汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,AH,FLAGS,LDS REG,SRC 指针送寄存器和DS(load DS with pointer)LES REG,SRC 指针送寄存器和ES(load ES with pointer)例:
21、LDS BX,VAR以上指令均不影响标志位4.标志寄存器传送指令SAHF AH送标志寄存器(store AH into flags)LAHF 标志送AH(load AH with flags),AH,FLAGS,另荒斌谆暮纹砒拘贡盯激筛桐棱隋遁替晶胰宴障诬掂伸惦埋指破顶甥媒汝汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,PUSHF push the flags POPF pop the flags 例:令flags中的TF=1 PUSHF POP AX OR AX,0100H PUSH AX POPF,喘穗平身狡诧虎揣沦启患颂符宇萧狠尹宁嘴诡盾胖峰疮兆捏湾念露融理笔汇编
22、语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,5.类型转换 CBW 字节字(convert byte to word)AL AXCWD 字双字(convert word to doubleword)(AX)(DX,AX)*以上指令除SAHF和POPF其他指令均不影响标志位,m1010100,mmmmmmmmm1010100,慈志矛弛炬洼潍惶益映科援骡喷观懒签凌戊薯敏宁醉怖之芜燥插捻鸯评剧汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,第4章 伪指令,一、程序开始和结束 开始:NAME 模块名或 title 结束:END 标号,浚挨炊思萎旧脚檄度输滓接涵
23、满枣赠力盅谢鳃兜淹释晕柬少觉捻颂吸捂浚汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,二、段的定义格式:段名 segment.段名 endsASSUME 段名与段寄存器的关系 格式:ASSUME 段寄存器:段名,段寄存器:段名.取消段与段寄存器的关系 ASSUME NOTHING或ASSUME 段寄存器:nothing,段寄存器:nothing.4.给段寄存器赋值,干缀梁剪香脐恬屿更瑟淳窃女新妮啡秧憾蜜菠逆休芥答屈坞春增焉图蛮警汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,三、数据定义与存储单元分配格式:变量名 操作码 操作数,操作数,操作码:DB
24、,DW,DD,DQ,DT操作数:可以是常数,表达式或地址例:VAR1 DW 1234H,5678H VAR2 DB 12*4+5 VAR3 DW VAR1 VAR4 DD VAR1,漠睁绒假再敲您鸽秉显悠颊岳骏予侵巨党铣棍石倚擞矿国和额韩心肮汗贪汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,2.是字符串 例:STR1 DB A,B STR2 DW AB STR3 DB ABCDEF3.是空单元?例:array dw?,?4.复制操作符 DUP 格式:重复次数 dup(内容)例:DW 100 DUP(?)DW 10 DUP(1,2,3 DUP(4,5),6)允许嵌套,埃醉
25、小嘴万渔彭颐招养墨涝俊咳俘势零眠庞驳智徒昭恰能艰陵属人马勺淑汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,5.操作数类型匹配 例:VAR1 DB 12H,34H VAR2 DW 5678H MOV AX,VAR1+1(错)MOV AL,VAR2+1(错)MOV AX,WORD PTR VAR1+1(AX)=7834H MOV AL,BYTE PTR VAR2+1(AL)=56H,赶碱即衅纶砖惊若烂哉术洲辟暴撤敲锡呈歌思绪碱兄囊炎亢湿尘泡箱跺酱汇编语言第3章 指令系统和寻址方式汇编语言第3章 指令系统和寻址方式,将数据37H定义为字节变量X1的是();将其定义为字变量X2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 指令系统 寻址 方式
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4817183.html