




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇编语言复习辅导第三章 8086指令系统和寻址方式应掌握编写一个完整的汇编语言程序所必需的知识及其相应概念:(1)汇编语言程序的格式(2)常用伪指令(伪操作)(3)8086寻址方式(4)8086指令系统1 汇编语言程序格式. 80x86的逻辑段:堆栈段、数据段、附加段、代码段(1) 完整段定义;- - - - - - - - - - - - - - - - - - - - - - -STSEGSEGMENT;定义堆栈段 DB 64 DUP(?)STSEGENDS;- - - - - - - - - - - - - - - - - - - - - - - DTSEGSEGMENT;定义数据段DATA1DB 36HDATA2DB 4BHSUMDB ?DTSEGENDS;- - - - - - - - - - - - - - - - - - - - - - - CDSEGSEGMENT;定义代码段MAINPROC FAR ASSUMECS:CDSEG,DS:DTSEG,SS:STSEGSTART: MOV AX,DTSEGMOV DS,AX;设置数据段地址MOV AL,DATA1;用户程序 MOV BL,DATA2 ADD AL,BLMOV SUM,AL MOV AH,4CH;返回DOSINT 21HMAINENDPCDSEGENDSEND START;汇编结束(2) 简化段格式:MODEL SMALL;存储模型STACK 100H;定义堆栈段及大小DATA;定义数据段 VAR1 DB ?CODE;定义代码段MAINPROC FAR;定义过程START:MOV DX,DATA;设置数据段MOV DS,AX; 地址MOV AX,4COOH;返回DOSINT 21H MAINENDP;过程结束END START;汇编结束2. 常用伪操作(1) 程序结构伪操作段定义伪操作:段名 SEGMENT段名 ENDS过程定义伪操作:过程名 PROC NEAR/FAR 过程名 ENDP程序开始和结束伪操作: TITLE程序名 - 程序说明(60个ASCII字符) END START段分配伪操作: ASSUME CS:代码段名, DS:数据段名ASSUME SS:堆栈段名, ES:附加段名(2) 数据类型及数据定义伪操作ORG 指定数据的存储地址或代码段的起始地址 例:ORG 100H 例: ORG 100HDATA1 DB 100 START: MOV AX,BX DB 定义字节, 其后的数据存储在一个字节中DW 定义字, 对其后的数据分配2个字节,数据的低8位存放在低字节,高8位存放在高字节; List File for DD Examples00A0ORG 00A0H00A0 FF030000DATA13 DD 1023 00A4 5C960800DATA14 DD 10001001011001011100B00A8 F2572A5CDATA15 DD 5C2A57F2H00AC 23000000 89470300DATA16 DD 23H,34789H,65533FDFF0000DQ 定义4字, 为数据分配8个字节单元DT 定义5字, 为压缩的BCD数据分配存储单元例如: DATADQ1122334455667788H DATBDT?DUP 按照给定的次数来复制某个(某些)操作数例如: DATC DW 32 DUP ( ? ) DATD DB 5 DUP ( 0, 8 DUP (1) ) EQU 赋值伪操作 COUNT EQU 25COUNTER DB COUNT MOV AH, COUNTTEMP = 25 MOV AH, TEMPTEMP = TEMP+1MOV AL, TEMP(3) 属性伪操作PTR 指定操作数的类型属性MOV AX, WORD PTR DATBMOV BL, BYTE PTR DATWLABEL 定义变量或标号的类型属性B_DAT LABEL BYTEW_DAT DW 50 DUP(?)3. 8086寻址方式寻址方式-指令中表示操作数地址的方式, 学习时要注意:(1) 正确书写各种寻址方式的汇编格式(2) 清楚各种寻址方式所指定的操作数或操作数地址在何处?( 指令中 / 寄存器中 / 存储器单元中)(3) 各种存储器寻址方式是如何形成操作数的物理地址的? (段寄存器 / 基址、变址寄存器 / 偏移量的组合关系)(4)各种寻址方式限定使用的寄存器 与数据有关的寻址方式小结寻址方式操作数地址(PA)指令格式举例立即寻址操作数由指令给出MOVDX, 100H ;(DX)100H寄存器寻址操作数在寄存器中ADD AX, BX ;(AX)(AX)+(BX)直接寻址操作数的有效地址由指令直接给出MOV AX, 100 ;(AX)(100)MOV AX,VAR ;(AX)(VAR)寄存器间接PA=(DS)16+(BX)或(SI)或(DI)PA=(SS) 16+(BP)MOV AX, BX; (AX)(DS)16+(BX) 寄存器PA=(DS)16+(BX)或(SI)或(DI)+位移量相对寻址 PA=(SS) 16+(BP)+位移量MOV AL, MESSSI;(AL)(DS)16+(SI)+OFFSET MESS) 基址变址 PA=(DS)16+(BX)+(SI)或(DI)PA=(SS) 16+(BP) +(SI)或(DI) MOV AX, BX+DI ;(AX)(DS)16+(BX)+(DI) 相对基址PA=(DS)16+(BX)+(SI)或(DI)+位移量变址寻址 PA=(SS) 16+(BP) +(SI)或(DI)+位移量 MOV AX, BUFF(BX+DI);(AX)(DS)16+(BX)+(DI)+OFFSET BUFF) 与转移地址有关的寻址方式用来确定 转移指令 及 CALL指令 的转向地址。段内直接寻址段内寻址 段内间接寻址段间直接寻址段间寻址段间间接寻址段内寻址:转移指令与转向的目标指令在同一代码段中, (CS)的值不变。段间寻址:转移指令与转向的目标指令在两个代码段中, (CS)变化。表示转移距离的操作符:SHORT 短转移,位移量在-128 127字节之间NEAR 近转移,在同一段内转移,位移量在-32768 32767字节范围内FAR 远转移,表示转移距离超过32K字节或是在不同段之间转移。例:JMP SHORT NEXT ;段内直接寻址JMP NEAR PTR NEXTJMP BX ;段内间接寻址JMP WORD PTR TABLEBXJMP FAR PTR NEXT;段间直接JMP DWORD PTR INTERS+BX;段间间接4. 8086 指令系统重点学习: 1. 指令的基本功能及汇编格式 2. 指令执行对标志位的影响 3. 指令支持的寻址方式4. 指令的其它特殊要求数据传送指令算术指令逻辑指令串处理指令控制转移指令处理机控制指令(1) 数据传送指令 通用数据传送指令 地址传送指令MOVLEAPUSHLDSPOPLESXCHG 累加器专用传送指令 标志寄存器INLAHFOUTSAHFXLATPUSHFPOPF(2) 算术指令加法指令 (ADD ADC INC)减法指令 (SUB SBB DEC NEG CMP)乘法指令 (MUL IMUL)除法指令 (DIV IDIV)符号扩展指令 (CBW CWD)十进制调整指令 ( 暂不要求 )注意: 算术指令都影响条件码 对带符号数和无符号数,表示结果溢出的条件标志是不同的 乘法指令只给出一个乘数,另一个乘数寄存器(AL/AX)和乘积寄存器 (AX/DX,AX)是隐含的 除法指令的被除数寄存器(AX/DX,AX)和结果寄存器(AL,AH)及(AX,DX)是隐含的3. 逻辑指令 逻辑运算指令(AND,OR,NOT,XOR,TEST) 移位指令(SHL,SHR,SAL,SAR)(ROL,ROR,RCL,RCR)4. 串处理指令 串传送指令(MOVSB / MOVSW) 存入串指令(STOSB / STOSW) 从串取指令 (LODSB / LODSW) 串比较指令(CMPSB / CMPSW) 串扫描指令(SCASB / SCASW)串重复前缀REP重复执行串指令REPE / REPZ相等/为0重复执行REPNE / REPNZ不相等/不为0重复执行设置方向标志指令CLDDF置0STDDF置1使用串指令所需要预置的参数:设置源串所在的数据段地址MOV AX,DATA_SEGMOV DS,AX设置目的串所在的附加段地址MOV AX,EXTR_SEGMOV ES,AXSI指向源串LEA SI,SRC_STRDI指向目的串LEA DI,DST_STR串长度存入CXMOV CX,n处理串的方向CLD / STD串处理指令REP MOVSB5.控制转移指令 无条件转移指令(JMP) 条件转移指令 (JZ, JS, JO, JL, JB) 循环指令(LOOP, LOOPZ, LOOPNZ) 子程序调用和返回指令(CALL, RET) 中断和中断返回指令 (INT, INTO, IRET)* 不影响条件标志位6. 处理机控制指令 标志位处理指令: CLC CF0 CMC CFCF STC CF1CLD DF0 STD DF1 CLI IF0 STI IF1 注意: * 只影响本指令指定的标志第四章 汇编语言程序设计基础1.基本结构的程序设计方法 顺序循环分支子程序2.典型算法的程序实现方法搜索排序逻辑尺控制条件控制地址跳转表法3.I/O程序设计(查询方式)4.中断程序设计 I/O端口,中断,中断向量(表), 中断允许位,中断屏蔽位, 存取中断向量的功能调用,中断过程中断程序设计方法5.常用BIOS和DOS的功能调用 键盘 显示器 打印机测试重点:1.8086指令系统、伪指令以及寻址方式2.阅读及编写一个完整程序3.编辑并运行一个程序的过程测试题型:1.分析指令(指令序列)的功能或执行结果(1)已知(DS)=2000H,(BX)=0100H,(SI)=0005 (20104H)=85H, (20105H)=0AH写出下列指令单独执行后有关寄存器或存储单元的内容。 MOVAX,BX+4 ;(AX)=0A85H INCBYTE PTR BXSI ;(20195H)=0BH(2) 试分析下面的程序段完成什么功能? 若(AX)=8A03H, (DX)=0045H,程序段执行后, AX和DX的值是什么?MOV CL,04SHL DX,CLMOV BL,AHSHL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年虚拟现实游戏开发与IP授权合作协议
- 2025年创意印刷品设计、生产与全球网络零售合作协议
- 2025年度新型alc轻质隔墙板绿色建筑项目专用采购合同
- 2025年水产养殖基地租赁合同规范
- 2025年度校园住宿楼物业管理及安保人员派遣服务合同
- 2025年校园网络安全监控与物业维护一体化服务合同
- 2025年互联网保险业务定金合同签订与风险控制
- 2025年高端医疗设备ODM加工及全球销售合同
- 2025年德邦快递员佣金调整及配送服务协议
- 2025年度农业综合开发农场场地租赁与生态循环项目合同
- 18项医疗核心制度题库(含答案)
- 科技美肤基础知识培训课件
- 2026届高考山东省启思教育高三暑假线上第一次模拟考试数学试题
- 企业质量管理培训
- 《俗世奇人》整本书导读课件
- 餐饮管理安全管理制度
- 传统白酒生产项目商业计划书
- 2025年物流仓储行业当前竞争格局与未来发展趋势分析报告
- 西柏坡景点讲解
- 2025年教师资格证考试综合素质(中学)试题及答案
- 江苏省淮安市2024-2025学年高一下学期期末考试物理试卷(解析版)
评论
0/150
提交评论