版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、寻址方式(实模式):1. 立即数寻址MOV AX, 1234H2. 寄存器寻址MOV AX, BX3. 直接寻址MOV AX, 1234H4. 寄存器间接寻址MOV AX, BX 5. 基址寻址MOV AX, BX+100H6. 变址寻址MOV AX, SI+100H7. 基址加变址寻址MOV AX, BX+SI8. 带位移的基址加变址寻址MOV AX, BX+SI+100H复习数据结构的基址寻址方式字段0字段n字段n-1字段2字段1基址寄存器+(位移量)MOV AX, BX+100H(位移量)数据阵列的变址寻址方式单元0单元n单元n-1单元2单元1变址寄存器+MOV AX, SI+100H单
2、元(0,0)单元(0,1)单元(0,n)(位移量)二维数据阵列的基址加变址寻址方式基址寄存器+MOV AX, BX+SI+100H单元(1,0)单元(1,n)单元(1,1)单元(m,n)变址寄存器+调试程序DEBUGR寄存器命令功能:检查或修改寄存器的值R 寄存器名调试程序DEBUGD转储命令功能:检查存储器的内容D 内存地址调试程序DEBUGE输入命令功能:检查或修改存储器的内容E 内存地址回车:结束输入命令空格:不修改存储器内 容,显示下一个 存储单元的内容输入新值,后回车或空格调试程序DEBUGA汇编命令功能:汇编程序指令A 起始地址U汇编命令功能:反汇编程序指令U 起始地址调试程序DE
3、BUGT跟踪命令功能:跟踪程序执行T=起始地址指令条数调试程序DEBUGR运行命令功能:运行程序G=起始地址算术运算指令的例子1. 设两个十进制数1234和5678分别存放在数据段中从1000H和2000H开始的单元中,计算这两个数的和,结果存放在3000H开始的单元中MOV AL, 1000ADD AL, 2000;低字节相加DAA;十进制调整MOV 3000, AL;存低字节和MOV AL, 1001ADC AL, 2001 ;高字节带进位相加DAA;十进制调整MOV 3001, AL;存高字节和算术运算指令的例子2. 实现非压缩BCD数68=48的程序MOV AL, 06MOV BL,
4、08MUL BL;AAM;AX(AL)(BL)十进制调整,使(AX)=0408算术运算指令的例子3. 实现非压缩BCD数175=3余2的程序MOV AX, 0107MOV BL, 05AAD;DIV BL;除法,得商(AL)=03,余数(AH)=02十进制调整,使(AX)=0011第三章 Pentium微处理器的指令系统3.1 概述3.2 Pentium微处理器的寻址方式3.3 数据传送指令3.4 算术运算指令3.5 逻辑运算指令3.6 串操作指令3.7 程序控制指令3.8 保护模式的系统控制指令3.9 浮点运算指令3.10 MMX指令简介3.5 逻辑运算指令位操作AND目标操作数,源操作数O
5、R目标操作数,源操作数XOR目标操作数,源操作数NOT目标操作数位操作AND主要用于将二进制数的某些位清0AND BL, 0FHxxxxxxxx (BL)00001111 0F0000 xxxx 结果AND位操作OR主要用于将二进制数的某些位置1OR BL, 0FHxxxxxxxx (BL)00001111 0Fxxxx1111 结果OR位操作XOR主要用于将二进制数的某些位求反XOR BL, 0FHxxxxxxxx (BL)00001111 0Fxxxxxxxx 结果XOR移位操作指令格式:SHL 目标操作数,计数移1位时,计数值可以为立即数1移多位时,计数值必须先存入CL寄存器MOV CL
6、, 3SHL AX, CLP.93位测试TEST 用于测试二进制数的某些位(一般为1位)TEST AL, 1JNZ RIGHTTEST AL, 128JNZ LEFT当被测试为为0时,ZF置位(ZF=1);当被测试为为1时,ZF复位(ZF=0)位测试位测试:BT 目标操作数,源操作数位测试置0:BTR 目标操作数,源操作数位测试置1:BTS 目标操作数,源操作数位测试取反:BTC 目标操作数,源操作数测试目标操作数中由源操作数指定的位,将其值送CF标志源操作数以目标操作数的长度为模MOV AX, 1FF0H BTS AX, 24位扫描向前位扫描:BSF 目标操作数,源操作数向后位扫描:BSR
7、目标操作数,源操作数对源操作数进行扫描,将遇到的第一个1所在的位置送目标操作数,并将ZF清0。如果源操作数为0,则目标操作数不变,且ZF置1MOV EAX, 60000000H BSF EBX,EAX3.6 串操作指令串传送MOVSBMOVSWMOVSD将一个字节/字/双字从DS:SI ES:DI指令前要先将源串首地址 DS:SI 目标串首地址 ES:DI完成操作后自动修改SI、DI,使其指向串的下一个元素串传送完成操作后自动修改SI、DI,使其指向串的下一个元素串操作方向由CLD和STD指令设置CLD 地址递增方向(DF=0)STD 地址递减方向(DF=1)串传送 重复前缀需要先将串的长度存
8、入CX寄存器每处理完一个元素自动使CX-1,直到CX=0才结束串传送完成整个串的传送REP MOVSBREP MOVSWREP MOVSD例: P.96例:串传送MOV SI, OFFSET S1MOV DI, OFFSET S2MOV CX, 18REP MOVSB.S1 DB “This is a string!$”S2 DB 18 DUP(0)串比较CMPSBCMPSWCMPSD比较地址为DS:SI、ES:DI的两个字节/字/双字指令前通常加重复前缀REPZ/REPE,从而当发现两个串不同时结束比较。例:串比较MOV SI, OFFSET S1MOV DI, OFFSET S2MOV C
9、X, xxREPZ CMPSBJNZ Not_EqualEqual: Not_Equal:.串搜索SCASBSCASWSCASD在首地址为ES:DI的串中搜索某个元素(字节/字/双字)事先要将待搜索的元素存入AL/AX/EAX指令前通常加重复前缀REPNZ/REPNE,从而当发现待搜索的元素时结束搜索。例:串搜索MOV DI, OFFSET StringMOV CX, xxMOV AL, hREPNZ SCASBJNZ Not_FoundFound: Not_ Found: .串装入LODSBLODSWLODSD将地址为DS:SI的一个字节/字/双字装入AL/AX/EAX串装入指令没有重复前缀
10、例:MOV SI, OFFSET StringMOV CX, xxMOV AH, 2LODSBMOV DL, ALINT 21LOOP NextCharNextChar:串装入串存储LODSBLODSWLODSD将AL/AX/EAX的值存入地址为ES:DI的内存单元利用重复前缀REP,可以建立一个取值相同的数据串3.7 程序控制指令控制程序的流向:无条件转移条件转移循环控制过程调用与返回中断无条件转移JMP Label1.Label1:条件转移相当于goto语句根据执行上一指令后标志寄存器的状态而决定是否转移条件转移根据执行上一指令后标志寄存器的状态而决定是否转移JAJAE=JBJBEJGE=
11、JLJLE=JG 标号条件转移JZJNZJCJNCJOJNOJPJNPJSJNSJCXZ循环控制LOOPLOOPE/LOOPZLOOPNE/LOOPNZ与CX配合使用,CX存放循环次数第四章 汇编语言程序设计4.1 概述4.2 汇编语言的基本语法4.3 汇编语言程序的控制结构4.4 DOS/BIOS中断调用4.5 保护模式下的汇编语言程序设计4.6 Win32汇编语言程序设计4.7 与高级语言的接口4.1 概述汇编语言程序的上机处理过程主要的汇编程序:MASM、TASM实模式汇编语言源程序的结构DATA SEGMENT .DATA ENDSSTACK SEGMENT STACK .STACK
12、ENDSCODE SEGMENT ASSUME DS:DATA, SS:STACK, CS:CODESTART: CODE ENDS END START4.2 汇编语言的基本语法1. 常量、变量和表达式常量二进制xxxxxxxxB01000101B八进制xxxO或xxxQ721O或721Q十进制xxxx或xxxxD1991或1991D十六进制xxxxH0F1D4H字符串xxx或“xxx”AB数值常量、符号常量(用EQU或=定义)变量内存单元的名字,由DB/DW/DD/DQ/DT定义BUF DB ?MOV BUF,AL变量的三种属性:段值 SEG偏移量 OFFSET类型 BYTE/WORD/.标
13、号指令存放单元的符号地址,是转移/调用/循环指令的操作数标号的三种属性:段值 SEG偏移量 OFFSET类型 NEAR/FAR表达式由操作数和运算符组成的序列操作数可以是寄存器、常量(数值常量、符号常量)、存储器操作数(标号、变量)运算符包括:算术运算符、逻辑运算符、关系运算符、数值返回运算符和属性运算符数值返回运算符(分析运算符)SEG 变量/标号OFFSET 变量/标号TYPE 变量/标号变量返回类型:1字节、2字、4双字标号返回类型:-1NEAR、-2FARLENGTH 变量SIZE 变量属性运算符(合成运算符)PTR类型 PTR 表达式MOV WORD PTR BX, 0THISTHI
14、S 类型MY_BYTE EQU THIS BYTEMY_WORD DW 100 DUP(?)2. 指令语句标号: 指令助记符 操作数 ;注释3. 伪指令语句名字 伪操作命令 操作数 ;注释符号定义语句定义符号常量PRICE EQU 281PORT = 6PORT = PORT +1数据定义语句定义变量、分配存储单元等变量名 DB/DW/DD/DQ/DT 操作数,操作数操作数可以是:数值表达式或表、字符串、?、N DUP表达式VAR DW ?ARRAY DB 100 DUP (0)段定义语句P. 131过程定义语句P. 131程序结束语句END 表达式表达式为程序的第一条指令的地址4.3 汇编语
15、言程序的控制结构分支结构程序段1程序段2条件JZ L1L1: .L2: .后继程序L3: .JMP L3TEST AX, 1YN程序段1后继程序条件JZ L1L1: . .TEST AX, 1分支结构YN循环结构先执行、后判断初始化部分循环体修改部分条件先判断、后执行初始化部分循环体修改部分条件后继程序循环结构循环结构循环控制:计数控制 LOOP条件控制 JZ/.4.4 DOS/BIOS中断调用习题1. 已知(CS)=0A00H,(DS)=0B00H,(SI)=0100H,(DI)=0200H,(BX)=0300H。指出下列指令中源操作数的寻址方式,并计算-小题操作数的物理地址。MOV AX, 1234HMOV AX, BXMOV AX, SIMOV AX, 1234HMOV AX, BX+400HMOV AX, BX+SIMOV AX, BX+DI H2. 已知(AX)=701FH,(BX)=13F1H。指出执行下列指令后目标操作数的内容和状态标志位的状态。SF ZF AF PF CF OFADD AX, BX(AX)= H ; SUB AX, BX(AX)= H ;AND AX, B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吕金遥借款合同分析
- 房屋交易居间服务协议书
- 2024版旅游合同书编写
- 工厂转让合同关键条款
- 浙江省建筑业农民工雇佣合同模板
- 仓库租赁合同 附加协议
- 技术股权合作格式模板
- 农业合作社贫困户精准帮扶协议
- 医生间合作协议书参考样本
- 2024年运营服务协议书
- 本科毕业设计-年产110万吨氧化铝石灰拜耳法溶出车间设计
- 提高住院病历完成及时性持续改进(PDCA)
- 部编版四年级语文上册课内阅读复习试题含答案全套
- 土壤学-土壤分类和调查课件
- 高中生物-特异性免疫(一)教学课件设计
- GB/T 42631-2023近岸海洋生态健康评价指南
- 酒旅餐饮商家直播间通用话术大全10-46-16
- 中国民族民俗:白族三道茶
- 违法建筑处置法律解读培训PPT
- 《加氢裂化工艺》加氢裂化技术讲义
- Unit 1 Art 单词默写 高中英语人教版(2019)选择性必修第三册
评论
0/150
提交评论