第3章寻址方式与指令系统汇编.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(2)寄存器间接寻址方式 指令中给出寄存器,寄存器中的内容为操作数的有效地址。 mov ax, [bx] ;如 (DS)=2000h,(BX)=1000h, 则 EA=? PA=? EA=1000h, PA=2000Hx10H+1000H=21000H BX,SI,DI ---- DS BP ---- SS (3)寄存器相对寻址方式 指令中给定一个基址寄存器(或变址寄存器)和一个8位或16位的相对偏移量,两者之和作为操作数的有效地址。 mov ax,[bx+10h] 如 (bx)=1200h,(ds)=2000h EA=? PA=? EA=1200h+10h=1210h PA=(DS)x10H+EA=20000h+1210h=21210h BX,SI,DI ---- DS BP ---- SS 基址变址寻址 (5)相对基址变址寻址 在指令中给出一个基址寄存器(bx/bp)、一个变址寄存器(si/di)和8位或16位的偏移量,三者之和作为操作数的有效地址。 mov ax, [bx+di+0050h], 如,(DS)=2100h,(bx)=0110h,(di)=0020h, EA=? PA=? EA=(bx)+(di)+50h=0110h+0020h+0050h=0180h, PA=21000h+EA=21180h BX ---- DS; BP ---- SS MOV dst,src 堆栈操作 操作数可以是 通用寄存器、段寄存器、存储器操作数。不能用立即数。 堆栈段存储增长方向和一般内存段刚好相反 Cmp指令 实际是减法,但不保存结果,仅设置标志位,用于比较大小。 cmp al,0 jge next ; al=0 (处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志CF;同时,根据是否超出有符号数的范围设置溢出标志OF)。 练习:写一程序段,将AL内容和-5比较,AL大于-5,AL寄存器内容传给BL,否则把 -5传给BL。 Cmp al, -5 jg aaa mov bl, -5 jmp exit Aaa: mov bl, al Exit: halt 练习:用循环计算1+2+3…+10的和。 Mov cx, 0ah Aaa: ADD AX,CX loop aaa DOS调用 读键盘: AH=01H,等待键盘输入一个字符(并回显),返回在AL寄存器中; mov ah,01h int 21h 显示单个字符: AH=02h,待显示的字符放在DL中; mov ah,02h mov dl, ‘a’ int 21h 显示字符串: AH=09h,DS:DX指向字符串内存地址,字符串必须以‘$’美元符结束,但美元符不会显示出来,仅显示它之前的字符串。 string DB ‘1234567890$’ LEA SI,string MOV [SI+6],‘$’ LEA DX,string+1 MOV AH,09h INT 21H 显示什么? 23456 练习:从键盘输入100个字母,存储在buf缓冲区中。 Buf db 100 DUP(0) Mov cx,100 Lea di,buf Aaa: mov ah,01 int 21h mov [di],al inc di loop aaa * 第3章 寻址方式与指令系统 3-5 Pentium微处理器新增寻址方式和指令 3-5-1 Pentium微处理器的内部寄存器 (1)指令的操作数可以是8位、16位或32位的二进制数。 (2)根据指令的不同,操作数字段可以是0~3个。 (3)在部分不存放结果的单操作数指令中,可采用立即数作为操作数。 * 第3章 寻址方式与指令系统 (4)立即数寻址方式中操作数可是32位立即数,寄存器寻址方式中操作数可是32位通用寄存器,存储器操作数寻址方式既可采用16位地址寻址方式也可采用32位扩展地址寻址方式。 (5)16位微处理器原有的4个通用数据寄存器扩展为32位,更名为EAX、EBX、ECX和EDX。 (6)原有的4个用于内存寻址的通用地址寄存器扩展为32位,更名为ESI、EDI、EBP、ESP。 * 第3章 寻址方式与指令系统 (7)指令指针寄存器扩展为32位,更名为EIP,实地址方式下仍然可使用低16位IP。 (8)在原有4个段寄存器上增加2个新段寄存器FS和GS,段寄存器长度仍然为16位。 (9)增加4个系统地址寄存器。 * 第3章 寻址方式与指令系统 (10)标志寄存器扩展为32位,更名为EFLAGS。 (11)新增5个32位的控制寄存器,命名为CR0~CR4。 (12)新增

文档评论(0)

花仙子 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档