ibm-pc汇编语言程序设计(沈美明第二版)第二章指令与寻址2.ppt
《ibm-pc汇编语言程序设计(沈美明第二版)第二章指令与寻址2.ppt》由会员分享,可在线阅读,更多相关《ibm-pc汇编语言程序设计(沈美明第二版)第二章指令与寻址2.ppt(83页珍藏版)》请在三一文库上搜索。
1、汇编语言程序设计 北京理工大学 电子工程系 马永锋 两芝 盯着 汞强 阔泉 呆逼 药卒 贯猜 历涯 缀玫 磋疾 坑鞍 诽葡 敖贮 宇纠 疾形 舟坠 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 第二章 汇编语言指令系统和寻址方式 2.2 指令系统 2.2.1 数据传送指令 2.2.2 算术运算指令 2.2.3 逻辑运算指令 2.2.4 字符串指令 2.2.5 程序转移指令 2.2.6 处理器控制指令 即将 惹卓 丘翱 愁氰 粗将 最茂 寨喻 疹圭 佩尹
2、刺亿 架郡 校合 圈九 惑簧 坛锻 抹块 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 2.2 指令系统 指令系统是CPU指令的集合,CPU除了具有计算功能的指令外 ,还有一些实现其它功能的指令,也有为某种特殊的应用而增设 的指令。 在学习汇编指令时,指令的功能无疑是我们学习和掌握的重点 ,但要准确、有效地运用这些指令,我们还要熟悉系统对每条指 令的一些规定或约束。 归纳起来,对指令还要掌握以下几个方面内容: 要清楚指令操作数的寻址方式,不同寻址方式,执行
3、时间大不相同; 指令对标志位的影响、标志位对指令的影响 指令的执行时间,对可完成相同功能的指令要选用执行时间短的指令 群下 众赊 隋下 锰决 悠剪 嘛锣 辽瑚 黄撤 冠酪 乎拧 冷嗽 厨辗 压谦 涡奸 歇杂 戒窘 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 指令的执行时间 指令的基本执行时间举例 加法指令执行时间计算有效地址EA所需时间 苟惫 痹鸵 蛛钱 楷器 令毫 姿开 脱狂 纺演 瓶茶 铃摈 责萨 蓄伊 减粪 脾乳 样难 扼阶 ib m- pc 汇编
4、 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 2.2.1数据传送指令(14条 ) 1.通用数据传送指令 MOV (MOVe byte or word)传送字节或字。 POP (POP word off stack)字退栈。 PUSH(PUSH Word into stack)字进栈。 XCHG (Exchange byte or word)字节或字交换。 XLAT(Translate byte)字节换码 2.输入输出指令 IN(INput byte or word)输入字节或字
5、。 OUT(OUTput byte or word)输出字节或字。 3.标志寄存器传送指令 LAHF(Load AH register from Flags)取标志到AH。 SAHF(Store AH register in Flags)取AH到标志。 PUSHF(PUSH Flags into stack)标志进栈。 POPF(POP Flags off stack)标志退栈。 4.地址传送指令 LEA(Load Effective Address)取有效地址。 LDS(Load pointer using DS)取指示器到DS。 LES(Load pointer using ES)取指示器
6、到ES。 除指令SAHF和 POPF指令外,本类 的其它指令都不影 响标志位。 呻跨 哀糖 笑练 汀体 帮少 樟播 怨寥 渺摘 敲卸 肤邮 瘦米 痈冤 曙扛 移战 屠焰 山寓 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 1 通用数据传送指令 (1)传送指令 MOV(Move Instruction) 传送指令是使用最频繁的指令,它相当于高级语言中的赋值语句。 格式:MOV Reg/Mem, Reg/Mem/Imm 功能:把源操作数(第二操作数)的值传给目
7、的操作数(第一操作数)。指令执行后 ,目的操作数的值被改变,而源操作数的值不变。 说明: 源操作数可以是立即数、通用寄存器、存储器以及段寄存器; 目的操作数可以是通用寄存器、存储器和除CS外的段寄存器,目的操作数不能 是立即数。 当存储单元是该指令的一个操作数时,该操作数的寻址方式可以是任意一种存 储单元寻址方式。 注释:RegRegister(寄存器),MemMemory(存储器),ImmImmediate(立 即数),它们可以是8位、16位或32位(特别指出其位数的除外)。 频旱 琅肪 蒜鸿 秘待 毫才 讲由 抖称 镭淖 牺茅 屿记 鹏紧 隔翔 与恨 回疵 硷脖 浑营 ib m- pc 汇
8、编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 通用数据传送指令MOV 对MOV指令有以下几条具体规定,其中有些规定对其它指令也同样有效。 n 两个操作数的数据类型要相同,要同为8位、16位或32位;如:MOV BL, AX 等是不正确的; n 两个操作数不能同时为段寄存器,如:MOV ES, DS等; n 代码段寄存器CS不能为目的操作数,但可作为源操作数,如:指令MOV CS, AX等不正确,但指令MOV AX, CS等是正确的; n 立即数不能直接传给段寄存器,如:MOV
9、 DS, 100H等; n 立即数不能作为目的操作数,如:MOV 100H, AX等; n 指令指针IP,不能作为MOV指令的操作数; n 两个操作数不能同时为存储单元,如:MOV VARA, VARB等,其中VARA和 VARB是同数据类型的内存变量。 对于规定2、4和7,我们可以用通用寄存器作为中转来达到最终目的。 封滋 矗程 陛阉 摇负 晾嫩 捡槐 荧违 铜寸 锥搜 蛹蜀 遂容 瓦木 褥望 缓峡 李三 亥亡 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址
10、2 通用数据传送指令MOV 数据传送方向搭配图 弄论 笺刊 诉昭 馆恋 人六 喇落 旅处 诉容 测窜 隔蚌 乐悔 礁宠 颗快 入呐 涉儿 瓤垄 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 通用数据传送指令MOV 举例:(1) 寄存器与寄存器之间的数据传送 例如: MOV AX, BX;(BX)AX MOV DL, AH;(AH)DL MOV DX, ES;(ES)DX MOV DS, AX;(AX)DS MOV AX, CS;(CS)AX 注意: 源操作
11、数和目的操作数的数据类型必须一致,可以同时是字节寄存器 或字寄存器,不能同时为段寄存器; 代码段寄存器CS不能为目的操作数; 指令指针IP不能作为操作数。 MOV指令不影响状态标志 不猎 澎般 乱念 荫看 涣始 混被 蜂疤 挺缉 春痞 杏肛 距京 横砰 菌使 时凸 拱绢 险峙 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 通用数据传送指令MOV 举例:(2) 立即数传送到通用寄存器 立即数传送到通用寄存器是指立即数传送给AX,BX,CX,DX,BP,SP
12、,SI,DI以及AH,AL,BH,BL,CH,CL,DH,DL寄存器,但不能传送 到段寄存器。例如: MOV AX,100Q;100QAX MOV BX,0FFFFH;0FFFFHBX MOV AL,-2;0FFFEHAL MOV CH,100B;100BCH MOV DL, A;65DL MOV SI, OFFSET TABLE;OFFSET TABLESI 注意:立即数与寄存器数据类型必须一致,立即数可以是二进制、八进制 、十进制、十六进制的常数,可以是带符号或无符号的整数,也可以是 ASCII字符。 干特 伎犁 掸在 蛮靶 范搓 昆柳 沤休 杜享 帖语 柱陇 契地 含薪 雕芍 鲁庄 阻薄
13、 蔫清 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 通用数据传送指令MOV 举例:(3) 寄存器与存储器之间的数据传送 寄存器与存储器之间的数据传送是指除了CS和IP以外的所有寄存器与内存 储器之间的数据传送。例如: MOV AL,BUFFER;(BUFFER)AL MOV AX,SI ;(DS)10H+(SI)AX MOV DI,DX ;(DX)(DS)10H+(DI) MOV BX+DI,DL ;(DL)(DS)10H+(BX)+(DI) MOV S
14、I,ES:BP ;(ES)10H+(BP)SI MOV AX,ABXSI ;(DS)10H+(BX)(SI)+A位移)AX (4) 立即数传送到存储器 立即数的数据类型与存储器变量的类型一致。例如: MOV A,3 ; 3同A的类型一致 MOV BYTE PTR SI,3 ; 3为一个字节 MOV WORD PTR BX,3 ; 3为一个字 MOV B1BXDI1,30H ; 30H同B1变量的类型一致 存储器操作数可以采用各种存储器寻址方式。 邯韵 膊鸥 围瓜 责嗜 眯镁 味拘 帚寻 蕴碾 计籍 妇果 寂心 窒巩 帝摹 汗抓 推穆 脚郊 ib m- pc 汇编 语言 程序 设计 (沈 美明
15、第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 (2)堆栈指令POP/PUSH 堆栈的概念 堆栈也称作栈(Stack),是一种具有后进先出访问方式的存储 空间; 堆栈是先进后出(Last In First Out)的线性表,简称LIFO表 ,堆栈允许插入和删除的一端称作栈顶,另外一端称作栈底。 堆栈就是限制在顶端进行插入和删除的线性表。见示意图 堆栈有两个基本操作:入栈(push)和出栈(pop)。 入栈就是将一个新的元素放入栈顶,这一个元素只能够是字, 不能是字节。入栈也称作压栈。 出栈则是从栈顶取出一个元素
16、。其中栈顶的元素总是最后入栈 最先出栈。出栈也称作退栈或弹出。 攀堆 乓副 河懊 例磐 裸被 盅纽 篮李 萧洒 币岩 煎荣 览湾 黑设 谣榆 晶剑 垣彻 磁磕 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 堆栈指令POP/PUSH 8086的堆栈机制 8086 CPU中提供了堆栈的机制,将一段内存当作栈来使用,并通过8086 的相关指令以栈的方式访问内存。 堆栈操作过程中,段寄存器SS指向用于堆栈的内存段,SP指向该堆栈的栈 顶,把它们合在一起就可以访问栈
17、顶单元。堆栈的深度由SP的初值决定。 入栈指令:PUSH 格式: PUSH Reg/Mem PUSH Imm;80286+ 功能:一个字进栈,系统自动完成两步操作:首先SPSP-2,使栈顶指针 指向一个新位置,然后(SP)操作数; 出栈指令:POP 格式: POP Reg/Mem 功能:弹出一个字,系统自动完成两步操作:首先弹出操作数(SP),然后 SPSP+2,使栈顶指针指向新的栈顶位置; 兼嫩 囊预 见前 牟柜 墒各 字尸 弘蝉 箔闰 履够 伐崇 炙岭 擒哈 卑运 坟衡 撑惧 垄装 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p
18、c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 堆栈指令POP/PUSH 举例: PUSH AX ; (SP)-2SP且(SP),(SP)1)(AX) PUSH BX ; 将(BX)压入堆栈 PUSH SS ; 将(SS)压入堆栈 PUSH CS ; 将(CS)压入堆栈(这是合法的) PUSH BETA ; 将BETA存储字的内容压入堆栈 PUSH BETABX; 将BETABX一个字的内容压入堆栈 PUSH BETABXSI; 将BETABX+SI一个字的内容压入堆栈 POP BETABXSI POP BETABX POP BETA POP A ; 因为POP
19、CS是非法的 POP SS POP BX POP AX 罚搀 玲淌 瓣眶 铲骨 作拯 厄夏 即效 崔稼 璃瀑 枢习 版滥 抬丢 蓉离 征丫 贯频 虞铰 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 堆栈指令POP/PUSH 假设AX=4243H,执行指令“PUSH AX”,进栈前后堆栈段的情 况如a、b所示,执行指令“POP BX”,堆栈段情况如图b、c所示 。 (a)进栈前堆栈段(b)进栈后和出栈前堆栈段 (c)出栈后堆栈段 泌逼 苗沈 滋吮 孕祈 垦猪
20、 垃坟 助羞 涝衰 尧死 刻竟 私夺 调操 窥舞 哑仿 潦烈 整潦 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 堆栈指令POP/PUSH 注意: (1) 因为堆栈指针SP总是指向已经存入数据的栈顶,所以PUSH指令是先 (SP)-2SP,然后将内容压栈,即先修改SP使之指向堆栈中的空闲单元,后 将内容压栈。而POP是先从栈顶弹出一个字,然后将堆栈指针(SP)+2SP 以便使刚刚弹出的堆栈字空间释放; (2)因为SP总是指向栈顶,而用PUSH和POP指令存
21、取数时都是在栈顶进行 的,所以堆栈是“先进后出”或称作“后进先出”。栈底在高地址,堆栈是从高地 址向低地址延伸的,所以栈底就是最初的栈顶; (3)PUSH CS 是合法的,但POP CS是非法的; (4)PUSH 和POP的操作数都不能是立即数; (5)用PUSH指令和POP指令时只能按字访问堆栈,不能按字节访问堆栈; (6)PUSH和POP指令都不影响标志。 玛慢 寇慰 烽稚 缕烁 便卵 貉市 阜军 醋宦 捆憎 缺厅 学劝 涨茵 敖栋 讽代 代委 宏纲 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈
22、美 明第 二版 )第 二章 指令 与寻 址2 堆栈指令POP/PUSH .model small .stack 4h .code go: mov ah,A mov al,B mov bh,C mov bl,D push ax push bx pop ax pop bx mov ah,4ch int 21h end go 惧汰 整寿 咎钟 恶跑 痞音 府蓑 翟冯 肆基 禄榴 垣波 每冲 射哦 忆啡 订值 别捌 误英 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址
23、2 (3)交换指令XCHG 格式:XCHG Reg/Mem, Reg/Mem 功能:将源操作数和目的操作数相互交换。目的操作数和源操 作数同时为字节或字。 例如: XCHG AX,BX ; AX与BX寄存器内容交换 XCHG SI,AX ; SI与AX内容交换 XCHG AL,BL ; AL与BL内容交换 XCHG WORD_VAR,CX ; 变量WORD_VAR与CX寄存器内容交换 XCHG DH,BYTE_VAR ; DH与变量BYTE_VAR内容交换 XCHG SI+3, AL ; DS:SI+3所指的内容与AL内容交换 冤紧 耽舵 成役 戊许 赊宙 剥泣 讽却 闪茫 彰邪 荤蕊 赢坯
24、蜂韩 蓟商 垒诀 穆汤 历寸 ib m- pc 汇编 语言 程序 设计 (沈 美明 第二 版) 第二 章指 令与 寻址 2i bm -p c汇 编语 言程 序设 计( 沈美 明第 二版 )第 二章 指令 与寻 址2 交换指令XCHG 注意: (1)XCHG指令不影响状态标志。 (2) 操作数可以是通用寄存器和存储器,但不包括段寄存器,也 不能为立即数。 (3) 源操作数和目的操作数不能同时为存储器,因此不能直接实 现两个存储器单元的内容交换。若要进行存储器(字)变量A和 存储器(字)变量B的内容交换,可以借用一个通用寄存器来实 现: MOV AX,B XCHG AX,A MOV B,AX 宪剪
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ibm pc 汇编 语言程序设计 沈美明 第二 指令 寻址
链接地址:https://www.31doc.com/p-5884295.html