版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章8086/8088指令系统、3.3指令系统可分为(1)数据传送系统(2)算术运算系统(3)位置运算系统(4)控制系统(5)I/O系统(6) 6种的OPRD是指, 各种类型的操作数mem内存操作数acc累加器操作数dest的操作数src源操作数disp 8位或16位偏移,在符号地址中表示DATA 8位或16位即时数PORT输入/输出端口。 可以用表示偏移地址的数字或式子表示寄存器的内容或存储单元的内容,3.3.1数据传送命令、数据传送命令包括通用传送目的地地址传送标志传送输出、1 .通用传送命令(1) MOV dest、src; destsrc是字节还是字取决于与命令相关的寄存器是8位还是
2、16位。 具体而言,MOV mem/reg1、mem/reg2指令中至少一个是寄存器示例: MOVCL、DL MOVAX、BX MOVSI、CX MOVCL、BX 5、MOV reg、DL MOVAX即时数据传送寄存器MOV mem、data 即时数传存储单元MOV acc、mem; 存储单元发送存储器MOV mem、acc。 累加器传送存储单元MOV segreg,mem/reg; 存储单元/寄存器段寄存器MOV mem/reg、segreg; 段寄存器转发存储器单元/寄存器、MOV命令使用规则:1) IP不能成为目标寄存器mem 3不可、regseg 4不可、即时数不可、目标操作数segr
3、eg即时数不可、6 )源操作数与目标操作数类型一致一些不可传输的解决方案:使用AX作为桥梁内存: MOV AX、MEM1 MOV MEM2、AX段寄存器段寄存器: MOV AX、DS MOV ES、AX段寄存器即时数: MOV AX、数据MOV DI、AX、AX 1000H MOV CX、64H MOV AL、2AH AGAIN:MOV DI、AL INC DI DEC CX JNZ AGAIN HLT、上段存储在代码段中,并设置(cs )。 指令109E : 0100 MOV DI、1000H 109E : 0103 MOV CX、64H 109E : 0106 MOV AL、2AH 109
4、E : 0108 MOV DI, al 109 e :010 ain CDI 109 e :010 bdec CX 109 e :010 cjnz 0108109 e :010 ehlt 109 e :0110,堆栈是什么? 以“后进先出(LIFO )”方式动作的存储器区域。 堆栈以字为单位进行按入弹出操作。 为什么要设置堆栈? 为什么以“后进先出”的方式工作? 参照下图,(2)堆栈操作指令、主程序、IP、继续执行、主程序、执行子程序、转子程序、压缩堆栈(b )子程序嵌套映像、堆栈、弹出、IP (下)、 SS指定的堆栈段的段基地址,堆栈指针SP始终指向堆栈的开头,SP的初始值规定使用的堆栈区域
5、的大小。 栈的最上面的地址称为栈底。 堆叠方向、堆叠方向、堆叠底部、堆叠顶部、堆叠指令PUSH src; src是16位操作数示例: PUSHAX; 堆栈执行操作: (SP)-1高字节AH (SP)-2低字节AL (SP)(SP)- 2注意:不能立即将数据放入堆栈,设(AX)=1020H,执行映像。 10、(AL )、(AH )、PUSH AX命令的执行画面,(SP)-2、(SP )、弹出命令POPdest示例: POPBX; 将堆栈内容弹到BX的执行操作: (bl)(sp)(bh)(sp)1(sp)(sp)(sp)2, 如下图所示,POP BX的可执行文件包括行地址、作为存储区域(SS段)的
6、(SP )、(SP) 1、(SP) 2、BX、20、10、高地址、 低地址请求:1.两个操作数之一必须在寄存器中2 .操作数不能与段寄存器立即计数3 .源和目标操作数类型必须匹配。 例如: XCHGAX,BX XCHG2000,CL,(3)交换命令XCHG,(4)查找表命令XLAT执行的操作:调用AL(BX) (AL )查找表转换命令,在能够从表条目编号中检测表的执行时例如,在存储器数据段中有16进制的ASCII码表,将开头地址设为2000H,想检测作为表中的第11个代码(代码号从0开始)的16进制b的ASCII码。 假设ASCII表位于DS段中,(DS)=4000H。 请看下一页的图。 开头
7、地址MOV AL,0 BH;30、31、32、39、41、42、45、46 (AL )执行序列号XALT查找表转换时,(AL)=42H=B,注意:转换表的长度最多为256个条目(字节)。 (5)字节-字转换指令,格式: CBW; 将AL的符号比特复制到AH CWD。 将AX的符号位复制到DX用途:用于有符号数的除法。 例: (AL)=A7H时,执行CBW后,AH的内容为FFH。 2 .输入/输出(I/O )指令限于以累加器AL或AX传输信息。 功能: (累加器) I/O端口(1)输入命令IN格式: IN acc,端口; 端口号0255 IN acc,DX; DX表示的端口范围达到64K例:IN
8、 AL、80H。 (AL)(80H端口) IN AL、DX; (AL)(DX ) ),例如OUT 68H、AX; (69H、68 h ) (ax )输出dx、AL。 (DX)(AL )在使用间接地址指定的IN/OUT命令时,预先利用传输命令将I/O端口号设定为DX寄存器(例如MOV DX、220H IN AL、DX; 将220H端口的内容读入AL,(2)输出指令OUT格式: OUT port,acc OUT DX,acc,3 .地址传送指令共计3条:格式: LEA reg,mem; 将指定存储器的16位偏移地址向指定寄存器LDS reg、mem32传送的ds 3360 reg (从mem开始的
9、4个存储单元) LES reg、mem32; 同样,要将DS更改为ES,源操作数必须是内存操作数,目标操作数必须是16位通用寄存器。 在设(SI)=1000H执行该命令之后,(BX)=1010H表示将LEA BX、BUFFER MOV BX、BUFFER前者或码地址为BUFFER的存储单元的偏移地址读入BX,注意以下两个命令的差异例如: LEABX、SI 10H、LEABX、缓冲器mov bx、偏移缓冲器、偏移缓冲器表示存储单元缓冲器的偏移地址。 两者都可以用于取存储单元的偏移地址,但LEA指令可以取动态地址,OFFSET只能取静态地址。 4 .标志传送指令总共有4个: (1)读取标志指令LA
10、HF LAHF是将标志寄存器的低位8比特中的5个标志比特传送到AH的指定比特的flag;(2)设置标志的指令SAHF SAHF的功能与LAHF的功能相反、OF、DF、IF、TF、SF、ZF、AF、PF、CF、SF、SF、ZF、AF、PF、CF、CF、AF、IF、TF、SF、SF、CF、AF、PF、CF、的、的、的、的、的、的、的、的、的、的、的、SF执行的操作3:(SP)-1标志寄存器高位8比特(SP)-2标志寄存器低位8比特(SP)-2 )从堆栈顶部开始执行标志寄存器指令POPF的操作3360标志寄存器低位8比特(SP )标志寄存器高位,(3) 保护标志寄存器的内容该程序使用AX、CX、标志
11、位POPF。 恢复标志寄存器内容POPCX POPAX,数据传输指令中,除了SAHF和POPF两个指令以外,其馀的所有指令不影响标志位。 3.3.2算术运算指令涉及两类数据:的无符号整数和有符号整数。 请注意,加减法命令可以使用相同的无符号命令集和有符号命令集,但参与的操作数必须是无符号命令或有符号命令集。 需要用不同的标志位检查无符号数和有符号数的运算结果是否有溢出。 2个8位相加有4种情况:合订5条: (1)无进位相加指令ADD格式: ADD dest,src; dest(dest) (src) ADD mem/reg、data ADD mem/reg1、mem/reg2【功能】实现了两个
12、操作数的相加,并将结果返回到目标操作数。 1 .对附加指令、附加指令操作数的请求可以是字节(8比特)或字(16比特),但是两者应该一致。 源操作数可以是即时数。 无符号数也可以是有符号数,但两者必须一致。 不允许全部内存操作数。 段寄存器是不允许的。 例如,ADDAL、30H ADDAX、BX 20H ADDCX、SI ADDDI和200H ADD命令影响标志比特(指状态标志)。 例如,ADD CL、20H; cl (cl ) 20h添加ax、si ax (ax ) (si )添加bx 2、AL。 (bx2) (al )添加dx、BX SI。 dx (dx )和add ax、CL。 错误! 操
13、作数类型为匹配的ADD SI,BX; 错误! 不允许两个操作数都是内存ADD DS,AX。 错误! 段寄存器不能被设置为操作数(2)加上进位指令ADC、【格式和操作】ADC dest、src; dest(dest) (src) (CF )【功能】将源操作数dest、目标操作数src、进位标志CF三者相加,并将结果返回到目标操作数。 ADC命令的格式、功能和对标志比特的影响与ADD命令基本上相同,但是CF也参与加法运算。 (2)加位相加命令ADC、ADC命令在形式上和功能上都与ADD类似,但是在相加中还包含加位标志CF的内容。 例如ADC AL、68H; 阿尔(阿尔) 68 h (卡夫) ADC
14、 ax、CX。 AX(AX) (CX) (CF) ADC BX、DI。 设定BX(BX) DI 1DI (CF ),例如CF=1,写出下一个命令执行后的结果。 执行MOV AL、7EHADC AL、ABH命令后: AL=7EH ABH 1=2AH、CF=1。 例如,有两个4字节的无符号数相加:2C56F8AC 309E47BE=? 将相加的数、相加的数分别存储在BUFFER1和BUFFER2开始的2个存储区域中,将结果移动到BUFFER1存储区域后,如下页图所示。 由于CPU只能进行8位或16位的加法运算,因此可以分4次进行加法运算。 ADC命令主要用于多字节相加、56H,2CH、BEH,47H、BUFFER1、BUFFER2、ACH、F8H、9EH、30H、的设置循环次数MOV SI,0; 使SI初始值为零的CLC; 进位标志CF LL: MOV AL、缓冲器2 si ADC缓冲器1 si、AL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 艺术团组长考核制度
- 项目指挥部考核制度
- 供应商品质考核制度
- 护理员岗前考核制度
- 新供应商考核制度
- 叉车工班组考核制度
- 公路养护工考核制度
- 社区巡逻队考核制度
- 生活区管理考核制度
- 安全保卫部考核制度
- 2026春节后复工复产安全培训第一课
- 2026湖南衡阳日报社招聘事业单位人员16人备考题库完整参考答案详解
- 2026年1月浙江省高考(首考)历史试题(含答案)
- 借款合同2026年担保协议
- 2024年河北省中考化学真题及答案解析
- 2025年职业卫生试题试题及答案
- 解除冻结限高申请书
- 小升初计算题过关专题训练(共30套)
- 舒城县残疾人联合会2025年工作总结和2026年工作安排
- 宁德新能源verify测试题库
- 山东省青岛市各县区乡镇行政村村庄村名居民村民委员会明细
评论
0/150
提交评论