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

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

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

neg al ; AL = +1

neg valW ; valW = -32767

5.标志位的影响

?The MOV instruction never affects the flags. ?加法减法影响的几个标志位:

Zero flag – set when destination equals zero (零标志) ?A flag is set when it equals 1. ?A flag is clear when it equals 0. 例子: mov cx,1

sub cx,1 ; CX = 0, ZF = 1 mov ax,0FFFFh

inc ax ; AX = 0, ZF = 1 inc ax ; AX = 1, ZF = 0

Sign flag – set when destination is negative (符号标志) The sign flag is a copy of the destination's highest bit: 例子:

sub al,1 ; AL = 11111111b, SF = 1 add al,2 ; AL = 00000001b, SF = 0

Carry flag – set when unsigned value is out of range (进位标志)

用于表示无符号整数运算是否发生溢出。 例子:

mov al,0FFh

add al,1 ; CF = 1, AL = 00 ; Try to go below zero: mov al,0

sub al,1 ; CF = 1, AL = FF

Overflow flag – set when signed value is out of range (溢出标志)

用于表示有符号数运算是否发生了溢出 例子:

mov al,7Fh

add al,1 ; OF = 1, AL = 80h

**判断溢出标志的几个重要结论:

9

*1.符号相同的两个数相加后,和的符号和原数符号相反,则一定发生了溢出。

*2.异号的俩数相减,结果的符号和减数相同,则一定发生了溢出。

(正-负=负 or 负-正=正 一定发生了溢出) 3.两个加数的符号不同的时候,永远不会发生溢出。

练习:

1.show the values of the destination operand and the Sign, Zero, and Carry flags

mov ax,00FFh

add ax,1 ; AX= 0100h SF= 0 ZF=0 CF=0 sub ax,1 ; AX= 00FFh SF= 0 ZF=0 CF=0 add al,1 ; AL= 00h SF= 0 ZF=1 CF=1 mov bh,6Ch

add bh,95h ; BH= 01h SF= 0 ZF= 0 CF=1 mov al,2

sub al,3 ; AL= FFh SF= 0 ZF= 0 CF=1 2.

mov al,80h add al,92h ; OF =1

mov al,-2

add al,+127 ; OF =0 mov ax,7FF0h

add al,10h ;CF= 1 SF= 0 ZF= 1 OF= 0 add ah,1 ;CF= 0 SF=1 ZF= 0 OF= 1 add ax,2 ;CF= 0 SF= 1 ZF= 0 OF= 1 4. mov al,-128 neg al ; CF = 1 OF = 1

mov ax,8000h

add ax,2 ; CF =0 OF =0

mov ax,0

10

sub ax,2 ; CF =1 OF =0

mov al,-5

sub al,+125 ; OF =1

14. 数据相关的操作符和伪指令

1.OFFSET操作符:返回数据标号的偏移地址

用例: .data

bVal BYTE ? wVal WORD ? dVal DWORD ? dVal2 DWORD ?

.code

mov esi,OFFSET bVal ; ESI = 00404000 mov esi,OFFSET wVal ; ESI = 00404001 mov esi,OFFSET dVal ; ESI = 00404003 mov esi,OFFSET dVal2 ; ESI = 00404007

2.PTR量声明时

操作符:可以重载操作数声明的默认尺寸,在试图以不同于变

所使用的尺寸属性来访问变量时非常有用。

*PTR必须和汇编器的标准数据类型联合使用:BYTE, SBYTE, WORD,

SWORD, DWORD, SDWORD, FWORD, QWORD,TBYTE

练习:写出目的操作数的值 .data

varB BYTE 65h,31h,02h,05h varW WORD 6543h,1202h varD DWORD 12345678h

.code

mov ax,WORD PTR [varB+2] ; a.0502h mov bl,BYTE PTR varD ; b.78h mov bl,BYTE PTR [varW+2] ; c.02h

11

mov ax,WORD PTR [varD+2] ; d.1234h mov eax,DWORD PTR varW ; e.12026543h

3.TYPE操作符:返回按字节计算的变量的单个元素的大小。

.data

var1 BYTE ? var2 WORD ? var3 DWORD ? var4 QWORD ?

对应的每个TYPE表达式的值

表达式 TYPE var1 TYPE var2 TYPE var3 TYPE var4 值 1 2 3 4

4、 LENGTHOF操作符:计算数组中元素的数目

.data ;LENGTHOF表达式的返回值 byte1 BYTE 10,20,30 ; 3 array1 WORD 30 DUP(?),0,0 ; 30+2 array2 WORD 5 DUP(3 DUP(?)) ; 5*3 array3 DWORD 1,2,3,4 ; 4 digitStr BYTE \ ; 9

*注意:数组的定义中使用嵌套DUP定义时,LENGTHOF将返回两个计数器的乘积

5、 SIZEOF操作符:返回值等于LENGTHOF和TYPE返回值的乘积 例子

.data SIZEOF byte1 BYTE 10,20,30 ; 3 array1 WORD 30 DUP(?),0,0 ; 64 array2 WORD 5 DUP(3 DUP(?)) ; 30 array3 DWORD 1,2,3,4 ; 16

12

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