汇编语言程序设计课件第二章(2)_第1页
汇编语言程序设计课件第二章(2)_第2页
汇编语言程序设计课件第二章(2)_第3页
汇编语言程序设计课件第二章(2)_第4页
汇编语言程序设计课件第二章(2)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2.2.1资料传输类命令、从一个位置资料传输到另一个位置的14个命令5组1、通用资料传输:MOV XCHG XLAT 2、堆栈操作:PUSH POP 3、标志寄存器传输:LAHF SAHF PUSHF POPF 4、地址传输命令也是最常用的命令类型。传输命令将数据从一个位置传输到另一个位置。除了图志寄存器传输指令外,不会影响图志位元集中。MOV推送点尤其熟悉。XCHG XLAT LEA一般理解:在LAHF SAHF PUSHF POPF LDS LES之后扩展:IN OUT、传输命令MOV(move)、单字节或单词立即寄存器或主内存:件2.1、movreg/mem/seg寄存器传输(段)寄存器

2、或主内存:件2.2、movreg/seg、mem主内存寄存器:例2.3例,mobreg/mm,seg分段寄存器发送寄存器或主内存:件2.4,传输指令不是万能的,非法传输也不少。示例2.1:立即传输数量,MOV AL,55H MOV AX,55AAH MOV CX,0F943H MOV BYTE PTR BX,12h12hDS:BX MOV WORD PTR BX SI,100h:100 HDS 3360 BX SI,注意:立即数字为字节或单词。也就是说,您可以知道命令是字节操作还是单词操作。其他说明,示例2.2:寄存器传输、MOV AX、BX MOV AH、BL、示例2.3:存储传输、MOV

3、AX、BX MOV SI、AL MOV SS、2000H MOV ES:DI、CS非法转移,两个操作数的类型不匹配。例如,源操作数是字节,目标操作数是单词。或者相反,两个操作数都不能是存储传输命令,但是主内存之间的直接传输不允许分段寄存器操作。段寄存器是专用寄存器,受限制的操作能力、实例、实例、实例和两个操作数的类型必须匹配。除非另有说明,否则目标操作数和源操作数必须匹配。莫卜蛋,050ah无效命令:050Ah是单词,AL是字节寄存器,寄存器参与的指令是操作数类型是寄存器的类型。如果存储单元和即时计数同时是操作数,则必须明确表示。Byte ptr表示字节类型,word ptr表示单词类型。两个

4、操作数都不能是阵列。8086命令系统不能将两个操作数都牙齿到存储单元(串行操作命令除外),并且没有向主内存发送数据。要实现这种传输,可以通过寄存器间接实现。范例2.5:buffer1储存格中的资料位于buffer2储存格mov ax、buffer 1;发送到。Axbuffer1(将buffer1内容发送到ax)mov buffer 2,ax;Buffer2ax其中buffer1和buffer2是两个字母的变量。实际上是指直接寻址方式。段寄存器的操作有一些茄子限制,不能立即传输到段寄存器MOVDS,100H。无效命令:无法立即传输段寄存器。不能直接更改CS值MOVCS,SI。不允许的指令不允许段

5、寄存器之间的直接资料传输MOVDS,ES。非法命令:允许在段寄存器之间传输渡边杏,更换命令XCHG(exchange),两个数据更换,XCHGReg,Reg/MEM;Regreg/mem,更换命令可以在寄存器和寄存器之间交换数据。可以在寄存器和内存之间交换数据。例如2.7,示例2.6,Why,示例2.6:寄存器和寄存器数据更换,MOV AX,1234H MOV BX,操作,节目已运行:AX=5678H,BX=1234H,示例2.7:寄存器和存储数据更换,MOV BP,0200H MOV SI,0046H XCHG AX,BP SI此处的BP,相应的段寄存器为SS,设置SS=5000H,存储设备

6、的物理地址PA=SS * 16 EA=50000H0200H0046H=50246h,发出命令之前:AX=5621H,(5000h 0200h 0046h)ALds:BX AL:示例2.8,执行更改代码命令之前:在主内存中创建字节表,内容为要转换的目标代码。表中的第一个地址存储在bx中,al存储相对于表中第一个地址的位移量,然后运行代码更改命令。因为al寄存器的内容转换为目标代码的隐式寻址方法(例如2.8),代码更改命令使用隐式寻址方法。隐式寻址方法使用基本操作数的寻址方法。是的。范例2.8: 09,将AF的十六进位数字转换为ASCII程式码,并显示. model small . stack

7、. datatabledb 0123456789 ABC def。09,AF的ASCII代码。代码。STARTUP MOV BX,OFFSET TABLE MOV AL,10xlatAL=41H,a的ASCII代码MOV DL,AL MOV AH,02H INT 21H。EXIT 0 END,堆栈操作指令,堆栈的概念堆栈操作:堆栈输入和堆栈退出功能,push r16/M16/s堆栈命令:Spsp2Ss : SPR 16/M16/seg,流行r16/M16/seg;“堆叠输出”命令:r16/M16/segss 3360 sp:SPs p2,堆栈是什么?堆栈是“先进先出”的主内存区域,位于堆栈段中

8、,使用SS段寄存器记录段地址。堆栈只有一个出口,即当前堆栈的顶部。堆栈顶部是由堆栈指针寄存器SP指定的地址较小的端点(底部端点)。图a中的堆栈是空堆栈。堆栈操作,堆栈只有两个茄子基本操作:堆栈进入和堆栈退出,以及两个茄子命令PUSH和POP。请参阅范例2.9和范例2.10。图B和图C、堆栈的实例和图例、MOV AX、1278H PUSH AX、POP AX、操作、堆栈的特征、堆栈操作的单位是一个词。高地址字节传输高字节堆栈操作经常用于根据先进先出原则随机访问堆栈的数据堆栈,以临时存储资料传输参数和恢复寄存器(例如2.11,示例进入子例程后pushbx pushds.popds在返回主程序之前,

9、发送pop bx pop ax、有效地址发送命令LEA(load EA)、将内存操作数的有效地址发送到指定寄存器、LEAR16、MEMR16mem的有效地址,例如2.12:有效地址的LEA BX,2000H执行BX命令后,将2000H操作数的偏移地址发送到:BX=2000H。与MOV BX、2000H的区别在于将DS: 2000H的内容发送到BX。操作,指针传输命令,LDS r16,memR16mem,DSmem 2 LDS命令将主内存中的mem指定单词发送到r16,将mem中的下一个单词发送到DS寄存器、LESR16和mem。R16mem,ESmem 2 LES命令将主内存中的mem指定单词

10、发送到r16,将mem中的下一个单词发送到ES寄存器(例如2.13,示例2.14,示例2.13:ldsbx,ADDRxSI DS=2000H,SI=1000H)执行命令后:BX=1040H,DS=4000H,(21020H)=1040H,(21022H)=4000H。操作,例如2.14、LES BX、SI DS=2000H、SI=1000H,存储操作数的物理地址为PA=DS * 16=20000H 1000H=21000H,在发出命令之前设置: (执行命令后:BX=1400H,ES=4000H,(21000H)=1400H,(21002H)=4000H。,徽标低字节访问AH命令,lahfAHF

11、LAGS的低字节LAHF命令将标志寄存器的低字节发射寄存器AH SF/ZF/AF/PF/CF状态标志位分别发送到AH的7/6/4/2/0位,将AH的5/3/1位随机,发送到SAHF。FLAGS中的低字节AH SAHF将AH寄存器内容发送到FLAGS中的低字节。将SF/ZF/AF/PF/CF标志设置为AH的7/6/4/2/0位,将标志寄存器设置为出入堆栈命令,PUSHFSpsp2SS:SPFLAGS PUSHF命令将标志寄存器的内容推入堆栈,同时从堆栈顶部指针SP中减去2,POPF。flag SSS 3360 sp:SPs p2 POPF命令将堆栈顶部单元格内容发送到标志寄存器,将堆栈顶部指针S

12、P发送到2,示例2.15,示例2.15:位置单步标志,pushf;将所有标志存储在堆栈popax堆栈中所有标志or ax,0100h移除。D8=TF=1,Ax其他位不变。push ax;堆栈popf的ax;推入。将堆栈内容导入到标志寄存器。FLAGSAX、I/o命令、inal/ax、i8/dx;AL/AXI/O通信端口输入IN命令将外围设备数据传输到CPU内的al/ax、outi8/dx、al/ax。I/O通信端口AL/AX输出OUT命令将CPU内的AL/AX数据传输到外围设备,8086通过I/O命令传输外围设备和数据,输入I/O命令,8086通过I/O命令与外围设备交换数据。提供给程序员的外

13、围设备是通信端口(Port),即用于寻址I/o地址8086外围设备通信端口的地址线为16个,端口最多为21665536个(64K),通信端口编号为0000HFFFFH。每个端口1字节的外围设备资料传输,I/o寻址方法,8086的端口为64k,有两种直接寻址方法。也就是说,只有00HFFH的前256个端口可寻址,操作数i8可用于通信端口编号间接寻址:64K个通信端口均可寻址。DX寄存器的值是,对于通信端口编号对大于FFH的端口,只能使用间接寻址方法(例如2.16、Inal、60H)。从通信端口60H读取1个字节为AL的INAX,20H。AX MOV DX,2f8h in Al,DX;通信端口20H,21H由“高”构

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论