- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例3.11:获取有效地址 mov bx,0400h mov si,3ch lea bx,[bx+si+0f62h] ;BX=0400h+003ch+0f62h=139EH 获得主存单元的有效地址;不是物理地址,也不是该单元的内容 可以实现计算功能 指针传送指令 LDS r16,mem ;r16←mem, ;DS←mem+2 LDS指令将主存中mem指定的字送至r16,并将mem的下一字送DS寄存器 LES r16,mem ;r16←mem, ;ES←mem+2 LES指令将主存中mem指定的字送至r16,并将mem的下一字送ES寄存器 例题3.12 例3.12:地址指针传送 mov word ptr [3060h],0100h mov word ptr [3062h],1450h les di,[3060h] ;es=1450h,di=0100h lds si,[3060h] ;ds=1450h,si=0100h mem指定主存的连续4个字节作为逻辑地址(32位的地址指针),送入DS:r16或ES:r16 例:LEA BX, [BX+SI+0F62H] LDS SI, [10H] LES DI, [BX] 40 H 00 H 00 H 30 H TABLE (DS):1000H MOV BX, TABLE ; (BX)=0040H MOV BX, OFFSET TABLE ; (BX)=1000H LEA BX, TABLE ; (BX)=1000H LDS BX, TABLE ; (BX)=0040H ; (DS)=3000H LES BX, TABLE ; (BX)=0040H ; (ES)=3000H 注意: 不影响标志位 REG 不能是段寄存器 SRC 必须为存储器寻址方式 3.3 指令系统 数据传送类指令 标志传送类指令 4 标志寄存器传送指令:LAHF、SAHF 标志寄存器传送指令:PUSHF、POPF 用来传送标志寄存器FLAGS的内容,方便进行对各个标志位的直接操作 影响标志位 标志低字节进出AH指令 LAHF ;AH←FLAGS的低字节 LAHF指令将标志寄存器的低字节送寄存器AH SF/ZF/AF/PF/CF状态标志位分别送入AH的第7/6/4/2/0位,而AH的第5/3/1位任意 SAHF ;FLAGS的低字节←AH SAHF将AH寄存器内容送FLAGS的低字节 用AH的第7/6/4/2/0位相应设置SF/ZF/AF/ PF/CF标志 标志寄存器进出堆栈指令 PUSHF ;SP←SP-2 ;SS:[SP]←FLAGS PUSHF指令将标志寄存器的内容压入堆栈,同时栈顶指针SP减2 POPF ;FLAGS←SS:[SP] ;SP←SP+2 POPF指令将栈顶字单元内容送标志寄存器,同时栈顶指针SP加2 例题3.13 例3.13:置位单步标志 pushf ;保存全部标志到堆栈 pop ax ;从堆栈中取出全部标志 or ax,0100h ;设置D8=TF=1, ;ax其他位不变 push ax ;将ax压入堆栈 popf ;FLAGS←AX ;将堆栈内容取到标志寄存器 类型转换指令 5 3.3 指令系统 数据传送类指令 字节转换成字指令:CBW 双字转换成四字指令:CDQ 字转换成双字指令:CWD 5.类型转换指令 CBW ;AL的符号扩展至AH ;如AL的最高有效位是0,则AH=00 ;AL的最高有效位为1,则AH=FFH。AL不变 CWD ;AX的符号扩展至DX ;如AX的最高有效位是0,则DX=00 ;AX的最高有效位为1,则DX=FFFFH。AX不变 什么是符号扩展 类型转换指令常用于获得倍长的数据 注意: 无操作数指令 隐含对 AL 或 AX 进行符号扩展 不影响条件标志位 例题3.14A 例题3.14B 符号扩展的概念 符号扩展是指用一个操作数的符号位(即最高位)形成另一个操作数,后一个操作数的各位是全0(正数)或全1(负数)。符号扩展不改变数据大小 对于数据64H(表示数据100),其最高位D7为0,符号扩展后高8位都是0,成为0064H(仍表示数据100) 对于数据ff00H(表示有符号数-256),其
文档评论(0)