云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 汇编语言复习资料天津大学王建荣

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

  • 62 次阅读
  • 3 次下载
  • 2025/5/31 0:45:22

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

搜索更多关于: 汇编语言复习资料天津大学王建荣 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

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,零扩展传送) 指令将源操作数的内容复制到目的操作数中,并将该值零扩展

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com