第一范文网 - 专业文章范例文档资料分享平台

汇编语言复习资料天津大学王建荣

来源:用户分享 时间:2025/5/21 8:34:13 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

dVal DWORD 5 .code

mov ds,45 ;immediate move to DS not permitted mov esi,wVal ;size mismatch

mov eip,dVal ;EIP cannot be the destination mov 25,bVal ;immediate value cannot be destination mov bVal2,bVal ;memory-to-memory move not permitted

3.MOVZX指令(move with zero-extend,零扩展传送)

指令将源操作数的内容复制到目的操作数中,并将该值零扩展至16位或32 位。

该指令只适用于无符号数。 三种格式:

Movzx r32,r/m8 Movzx r32,r/m16 Movzx r16,r/m8

用例:

mov bl,10001111b

movzx ax,bl ; zero-extension

01 0 0 0 1 1 1 1Source0 0 0 0 0 0 0 01 0 0 0 1 1 1 1Destination4.MOVSX指令(move with sign-extend,符号扩展传送)

指令将源操作数的内容复制到目的操作数中,并将该值符号扩展至16位或 32位。该指令只适用于有符号数。三种格式:

Movsx r32,r/m8 Movsx r32,r/m16 Movsx r16,r/m8

用例:

mov bl,10001111b

movsx ax,bl ; sign extension

5

1 0 0 0 1 1 1 1Source

1 1 1 1 1 1 1 11 0 0 0 1 1 1 1Destination5.XCHG指令

指令交换两个操作数内容。 规则:不接受立即操作数

除此之外,与MOV指令遵循同样规则。 用例: .data

var1 WORD 1000h var2 WORD 2000h .code

xchg ax,bx ; exchange 16-bit regs xchg ah,al ; exchange 8-bit regs xchg var1,bx ; exchange mem, reg xchg eax,ebx ; exchange 32-bit regs

xchg var1,var2 ; error: two memory operands

6.直接偏移操作数

在变量名称后加上一个偏移值,可以创建直接偏移(direct-offset)操作数,可以通过它访问没有显示标号的内存地址。

字节数组,字数组,双字数组的第二个元素与第一个元素的偏移相距分别为1,2,4字节

练习题: .data

6

var1 SBYTE -4,-2,3,1

var2 WORD 1000h,2000h,3000h,4000h var3 SWORD -16,-42 var4 DWORD 1,2,3,4,5

下列每条指令安顺序执行后,目的操作数的值是什么? mov ax,var2 ;1000h mov ax,[var+4] ;3000h mov ax,var3 ;FFF0h mov ax,[var3-2] ;4000h

mov edx,var4 ;00000001h mov edx,var2 ;00001000h mov edx,[var4+4] ;00000002h mov edx,var1 ;FFFFFFFCh

二、加法和减法

1、INC 和DEC 指令

Add 1, subtract 1 from destination operand,operand may be register or memory

INC Logic: destination ? destination + 1 DEC Logic: destination ? destination – 1 格式:

INC reg/mem DEC reg/mem 用例: .data

myWord WORD 1000h

myDword DWORD 10000000h .code

inc myWord ; 1001h dec myWord ; 1000h

inc myDword ; 10000001h

mov ax,00FFh

inc ax ; AX = 0100h mov ax,00FFh

inc al ; AX = 0000h

练习题:

7

.data

myByte BYTE 0FFh, 0 .code

mov al,myByte ; AL =FFh mov ah,[myByte+1] ; AH =00h dec ah ; AH =FFh inc al ; AL =00h dec ax ; AX = FEFF

3.ADD and SUB指令

ADD destination, source

Logic: destination ? destination + source SUB destination, source Logic: destination ? destination – source 用例: .data

var1 DWORD 10000h var2 DWORD 20000h

.code ; ---EAX--- mov eax,var1 ; 00010000h add eax,var2 ; 00030000h add ax,0FFFFh ; 0003FFFFh add eax,1 ; 00040000h sub ax,1 ; 0004FFFFh

4.NEG指令

Reverses the sign of an operand. Operand can be a register or memory operand.

格式: NEG reg NEG mem 用例: .data

valB BYTE -1 valW WORD +32767 .code

mov al,valB ; AL = -1

8

搜索更多关于: 汇编语言复习资料天津大学王建荣 的文档
汇编语言复习资料天津大学王建荣.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5dx3w4yluw2xzhu2l5b6_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top