




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ibm pc机的指令系统y80 x86指令系统分成下列六大类:v数据传送指令v算术运算指令v逻辑运算和移位指令v串操作指令vcpu控制指令与标志位处理指令控制转移指令y无条件转移指令y条件转移指令y子程序调用和返回指令y中断指令无条件转移指令y格式:jmp 地址表达式y功能:使程序的流程无条件跳到转移地址所指的地方。v转移目的地址(cs)16+(ip)v段内转移:改变ip的内容,cs的内容不变。v段间转移:ip、cs的内容都改变。y段内直接寻址:指令中直接给出到达的目标地址v例如:jmp prog1 ;转移范围:3276832767vjmp short next ;转移范围:128127y段内
2、间接寻址:指定某个寄存器的内容或某个字单元的内容作为转移地址的偏移地址。v例如:jmp bx ;(bx) ipvjmp word ptr1000h ;(ds:1000h) ipvjmp word ptrsi+2 ;(ds:si+2) ipvjmp tablebx ;(ds:table+(bx) ipy段间直接寻址:通过标号直接给出转移地址v例如:jmp far ptr nextp;nextp的段址cs,偏址ipvjmp nextp1 ;nextp1的段址 cs,偏址 ipy段间间接寻址:指定一个4字节的单元内容作为转移地址,其中低二字节内容ip,高二字节内容cs。v例如:jmp dword p
3、tr100hvjmp dword ptrbxnotice!y段内与段间直接寻址v可以有相同的格式v标号前可以有: short、far(near) ptr v机器指令中使用的是位移量y 间接转移v注意类型条件转移指令y标志位条件转移指令y二个无符号数比较转移指令y二个带符号数比较转移指令标志位条件转移指令yjc 标号 ;当(cf)=1,则转移。vjnc 标号;当(cf)=0,则转移。yjz/je 标号;当(zf)=1,则转移。vjnz/jne 标号;当(zf)=0,则转移。yjs 标号;当(sf)=1,则转移。vjns 标号;当(sf)=0,则转移。yjo 标号;当(of)=1,则转移。vjno
4、 标号;当(of)=0,则转移。yjp 标号;当(pf)=1,则转移。vjnp 标号;当(pf)=0,则转移。二个无符号数比较转移指令y设a为被减数,b为减数。cmp a,byja 标号;当ab时转移;yjae 标号;当ab时转移;yjb 标号;当ab时转移;yjbe 标号;当ab时转移。cf zf二个带符号数比较转移指令yjg 标号;当被减数大转移;yjge 标号;当被减数大于等于减数转移;yjl 标号;当被减数小转移;yjle 标号;当被减数小于等于减数转移sf of zf例子1y完成分段函数 -1 al 0jcxz/ jecxz条件转移指令y格式:jcxz / jecxz 标号v功能:当
5、(cx) / (ecx)0时,转向标号循环控制指令loop/loope/loopney格式:loop 标号;v功能:(cx)-1 cx,若(cx)0,则转移v功能等价ldec cxljnz 标号y格式:loope/loopnev(cx0) and (zf = 1/0)notice!y除无条件转移指令只能使用标号;y条件转移指令在386前只能是段内直接短转移,即偏移量为-128127;yjcxz、 jecxz和loop只能是段内直接短转移。y使用loop指令,注意初始值是否为0。 (不同于rep)jcc labeljncc skipnextjmp labelskipnext:习题y找出100个有
6、符号字节数中间的最大数。过程调用和返回指令y调用指令 callv格式:call 子程序/地址表达式v功能:l保护断点将当前断点压入堆栈;l转入子程序将子程序段的入口地址送入ip(/cs);y段内直接调用vcall subx 执行过程:push ip ; subx入口地址ipy段内间接调用:子程序的入口偏移地址存放在reg或者mem中vcall bxvcall word ptr 1000hv执行过程:push ip ;子程序入口地址 ipy段间直接调用vcall subfv或call far ptr subfv执行过程:push cs;push ip;子程序入口地址 cs,ip y段间间接调用:
7、子程序入口段地址和偏移地址存在dword中vcall dword ptr addrv执行过程:push cs;push ip;addr ip;addr+2 csy子程序返回指令 ret(n/f)v格式:ret nv功能:返回主程序。根据子程序的属性near、far决定:l段内返回:pop ipl段间返回:pop ip;pop csvret n:返回;并执行sp = sp + n;vcall与ret类型必须一致code segmentmain proc far call sub retmain endpsub proc near retsub endpcode ends 段内调用和返回段内调用和
8、返回code1 segmentmain proc far call sub retmain endpcode1 endscode2 segmentsub proc far retsub endpcode2 ends 段间调用和返回段间调用和返回子程序调用和返回:段内、段间call 与与ret指令的模拟指令的模拟ycall模拟vpush cs;段间需要vmov ax,offset retadd;vpush axvjmp 过程名yret模拟vpop ax; 弹出ipvjmp ax;段内v段间怎么办?中断调用与返回指令y中断:数据传输方式;软中断和硬中断y中断服务程序:处理中断的子程序;y中断向量:
9、中断子程序的入口地址y中断向量表:存放在00000h地址的四字节表格y中断类型码:给中断向量的一个编号y (中断向量表查看:debug)y中断调用指令 intv格式:int nv功能:调用n号中断子程序v操作:lpushf; push cs; push ip l取得中断向量,转入y中断返回指令 iretv格式:iretv操作:pop ip; pop cs; popfdos 中断调用yms-dos “api” & system “api” yah为功能号ydos int部分使用al/ax作为返回值 0-成功; 1-失败 ibm pc 机硬件系统 基本输入输出系统( bios) 磁盘操作系统( d
10、os) 高级语言 用户程序 dos 21h号中断调用y1. 从键盘读入一个字符vmov ah,1/8 回显/不回显vint 21h ; v键入字符的ascii存入al中y2. 显示一个字符到屏幕vmov ah,2vmov dl, asciivint 21h ; dos 21h号中断调用y3. 显示一个字符串到屏幕vmov ah,9vlea dx, stringvint 21h ; v;字符串要求以”$”结束y4. 从键盘读入一个字符串到屏幕vmov ah,0ahvlea dx, stringvint 21h vstring第一个字节为长度;第二个为实际输入的长度。dos 21h号中断调用y5. 返回dosvmov ah,4chvint 21hibm pc机的指令系统y80 x86指令系统分成下列六大类:v数据传送指令v算术运算指令v逻辑运算和移位指令v控制转移指令v串操作指令 clc cf0 cmc cf cf stc cf1 cld df0 std df1 cli if0 sti if1 注意注意: 只影响本指令指定的标志只影响本指令指定的标志 标志处理指令nopy空操作 (机器码: 90h)y与xchg ax,ax相同y用途:vtimerl1个时钟周期;dsp, c5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025基孔肯雅热题库及答案
- 葬歌课件教学课件
- 2025年高考山东物理试题(解析版)
- 2025合作项目委托合同
- 2025年三基模拟习题及答案
- 2025贷款借款合同撰写模板
- 消化内科出科题目及答案
- 查验员考试题库多选题及答案
- 相遇问题五下题目及答案
- 线性代数专题题目及答案
- (高清版)DB34∕T 5154-2025 基于云制造的工业互联网架构要求
- 党校中青班入学考试试题及答案
- 三支一扶培训
- 医疗卫生机构安全生产标准化管理规范
- 心内科出科汇报
- 2025年中国儿童游乐设施产业深度调研与投资机遇研究报告
- 新生儿42天体检要点解析
- 生成式人工智能课件
- 2025年园林绿化养护管理方案范本(四)
- 煤矿联网课题题目及答案
- 2025内蒙古巴彦淖尔市能源(集团)有限公司招聘48人笔试参考题库附带答案详解析集合
评论
0/150
提交评论