第2章 8086微处理器与汇编语言 指令系统.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 8086微处理器与汇编语言 指令系统

第2章 8086微处理器与汇编语言;学习目标;教学内容;数据传送类指令;指令系统;把一个字节或字的操作数从源地址传送至目的地址。;mov cl,4 ;cl←4,字节传送 mov dx,0ffh ;dx←00ffh,字传送 mov si,200h ;si←0200h,字传送 mov bvar,0ah ;字节传送 假设bvar是一个字节变量,定义如下:bvar db 0 mov wvar,0bh ;字传送 假设wvar是一个字变量,定义如下:wvar dw 0;mov ah,al ;ah←al,字节传送 mov bvar,ch ;bvar←ch ,字节传送 mov ax,bx ;ax←bx,字传送 mov ds,ax ;ds←ax,字传送 mov [bx],al ;[bx]←al,字节传送;mov al,[bx] ;al←ds:[bx] mov dx,[bp] ;dx←ss:[bp+0] mov dx,[bp+4] ;dx←ss:[bp+4] mov es,[si] ;es←ds:[si];mov [si],ds mov ax,ds ;ax←ds mov es,ax ;es←ax←ds;MOV指令也并非任意传送!;在绝大多数双操作数指令中,目的操作数和源操作数必须具有一致的数据类型,或者同为字量,或者同为字节量,否则为非法指令。 MOV AL, 050AH ;非法指令,修正: ;mov ax,050ah MOV SI, DL ;非法指令,修正: ;mov dh,0 ;mov si,dx;当无法通过任一个操作数确定是操作类型时,需要利用汇编语言的操作符显式指明。 MOV [BX+SI], 255 ;非法指令,修正: ;mov byte ptr [bx+si], 255 ;byte ptr 说明是字节操作 ;mov word ptr [bx+si], 255 ;word ptr 说明是字操作;8088指令系统除串操作指令外,不允许两个操作数都是存储单元(存储器操作数)。 MOV buf2, buf1 ;非法指令,修正: ;假设buf2和buf1是两个字变量 ;mov ax,buf1 ;mov buf2,ax ;假设buf2和buf1是两个字节变量 ;mov al,buf1 ;mov buf2,al;8088指令系统中,能直接对段寄存器操作的指令只有MOV等个别传送指令,并且不灵活。 MOV DS, ES ;非法指令,修正: ;mov ax,es ;mov ds,ax MOV DS, 100H ;非法指令,修正: ;mov ax,100h ;mov ds,ax MOV CS, [SI] ;非法指令,修正: ;CS不能作为目的操作数;交换指令XCHG;mov ax,1199h ;ax=1199h xchg ah,al ;ax=9911h ;等同于 xchg al,ah mov wvar,5566h ;wvar是一个字量变量 xchg ax,wvar ;ax=5566h,wvar=9911h ;等同于 xchg wvar,ax xchg al,byte ptr wvar+1 ;ax=5599h,wvar=6611h ;“byte ptr wvar+1”强制为字节量,只取高字节与 AL类型交换,否则数据类型不匹配;换码指令XLAT(translate);堆栈操作指令;标志传送指令;标志寄存器出入堆栈指令 标志进栈 标志出栈;地址传送指令;指针传送指令 LDS指令 将主存中mem指定的字送至r16,并将mem的下一字送DS寄存器。 LES指令 将主存中mem指定的字送至r16,并将mem的下一字送ES寄存器。 ;算术运算类指令;加法类指令;带进位加法指令ADC 将源与目的操作数相加,再加上进位CF标志,结果送到目的操作数。;例:用汇编语言实现多字节加法。 计算:0234 4652H+F0F0 F0F0H=? ;增量指令INC 对操作数加1(增量);减法指令SUB SUB指令将目的操作数减去源操作数,结果送到目的操作数。;带借位减法指令SBB SBB指令将目的操作数减去源操作数,再减去借位CF(进位),结果送到目的操作数。;取负指令;比较指令;常利用其对标志位的影响,后接跳转指令完成分支结构。;乘法类指令;带符号数乘法 字节乘法;乘法指令如下影响OF和CF标志: MUL指令:若乘积的高一半(AH或DX)为0,则OF=CF=0;否则OF=CF=1。 IMUL指令:若乘积的高一半是低一半的符号扩展,则OF=CF=0;否则均为1。 乘法指令对其他状态标志未定义。;例题: 无符号乘法MUL;例题: 有符号乘法 IMUL;除法类指令;有符号数除法 字节除法;除

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档