µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

»ã±àÓïÑÔ¸´Ï°×ÊÁÏÌì½ò´óѧÍõ½¨ÈÙ

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2025/11/24 13:18:39 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

neg al ; AL = +1

neg valW ; valW = -32767

5.±ê־λµÄÓ°Ïì

?The MOV instruction never affects the flags. ?¼Ó·¨¼õ·¨Ó°ÏìµÄ¼¸¸ö±ê־λ£º

Zero flag ¨C 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 ¨C 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 ¨C 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 ¨C 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Á¿ÉùÃ÷ʱ

²Ù×÷·û£º¿ÉÒÔÖØÔØ²Ù×÷ÊýÉùÃ÷µÄĬÈϳߴ磬ÔÚÊÔͼÒÔ²»Í¬ÓÚ±ä

ËùʹÓõijߴçÊôÐÔÀ´·ÃÎʱäÁ¿Ê±·Ç³£ÓÐÓá£

*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