日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编语言 标志位

發布時間:2025/5/22 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编语言 标志位 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

加法和進位標志位

兩個無符號整數相加時,進位標志位是目的操作數最高有效位進位的副本。如果和數超過了目的操作數的存儲大小,就可以認為CF=1。

mov al, 0FFH add al , 1 ; AL = 00 , CF = 1

在上面的加法運算中,AL最高有效位的進位復制到進位標志位。

如果AX的值為00FFH,則對其進位加1操作后,和數不會超過16位,那么進位標志位清0.

mov ax, 00FFH add ax, 1 ; AX = 0100H, CF = 0

但是,如果AX的值為FFFFH,則對其進行加1操作后,AX的高位就會產生進位

mov ax, 0FFFFH add ax, 1 ; AX = 0000, CF = 1

減法和進位標志位

從較小的無符號整數中減去較大的無符號整數時,減法操作就會將進位標志位置1.

mov al, 1 sub al, 2 ; AL = FFH , CF = 1


注:

  • INC和DEC指令不會影響進位標志位。在非零操作數上應用NEG指令總是會將進位標志位置1。
  • 移動指令 mov、push、pop這些指令不會影響標志位。

零標志位

當算術運算結果等于0時,零標志位置1。
例1:

mov cx, 1 sub cx, 1 ; ECX = 0, ZF = 1 mov ax, 0FFFFFFFFH inc ax ; ECX = 0, ZF = 1 inc ax ; ECX = 1, ZF = 0 dec ax ; ECX = 0, ZF = 1

例2:

mov ax, 100 and ax, 0mov ax, 4C00H int 21


注:mul 和 div 運算不影響零標志位。

奇偶標志位

目的操作數最低有效字節中1的個數為偶數時,奇偶(PF)標志位置1。

mov al, 10001100B add al, 00000010B ; AL = 10001110, PF = 1 sub al, 10000000B ; AL = 00001110, PF = 0

執行了ADD指令后,AL的值為1000 1110(4個0, 4個1),PF = 1。執行了SUB指令后,AL的值包含了奇數個1,因此奇偶標志位等于0。

符號標志位

有符號數算術操作結果為負數,則符號標志位置1。

mov ax, 4 sub ax, 5 ; EAX = -1 , SF =1

從機器的角度來看,符號標志位是目的操作數高位的副本。

mov bl ,1 ; BL = 01H sub bl ,2 ; BL = FFH(-1), SF = 1

注:SF把計算的結果看作是正數或負數。


例如:
下面每條指令執行后,ZF PF SF標志位的值

assume cs:code code segment start: ; ZF PF SFmov ax, 0 sub al, al ;1 1 0 al = 0000 0000Bmov al, 1 ;1 1 0 al = 0000 0001Bpush ax ;1 1 0pop bx ;1 1 0 bl = 0000 0001Badd al, bl ;0 0 0 al = 0000 0010Badd al, 10 ;0 1 0 al = 0000 1100Bmul al ;0 1 0 AX = 0000 0000 1001 0000B; mul 不影響 SF 標志位mov ax, 4C00Hint 21 code endsend start

溢出標志位

有符號數算術操作結果與目的操作數相比,如果發生上溢或下溢,則溢出標志位置1.

mov al, +127 add al, 1 ; 0F = 1

同樣,最小的負數為-128,再減1就發生下溢。如果目的操作數不能容納一個有效算術運算結果,那么溢出標志位置1。

mov al, -128 sub al, 1 ; OF = 1

assume cs:code, ds:data, ss:stackdata segmentdb 256 dup(0) data endsstack segment stackdb 128 dup(0) stack endscode segmentstart: mov ax, stackmov ss, axmov sp, 128mov al, 80H ; - 128 - 1 = -129sub al, 1mov ax, 4C00Hint 21Hcode endsend start

assume cs:code, ds:data, ss:stackdata segmentdb 256 dup(0) data endsstack segment stackdb 128 dup(0) stack endscode segmentstart: mov ax, stackmov ss, axmov sp, 128mov al, 99add al, 98mov ax, 4C00Hint 21Hcode endsend start

注:

  • AL字節型數據表示的范圍:-128~127
  • AX字型數據表示的范圍:-32768~32767
  • 超過以上范圍就會溢出,溢出標志位置1。

方向標志位

它用于控制字符串操作指令中地址指針變換的方向。若DF=0,串操作從低地址向高地址方向進行,每次操作后使地址指針SI、DI自動遞增;若DF =1,則串操作從高地址向低地址方向進行,SI、DI自動遞減。執行CLD指令可使DF清0,STD指令使DF置1。

以下代碼實現的是對指令的復制,復制到段地址:偏移地址 0000H:7E00H

assume cs:code, ds:data, ss:stackdata segmentdb 128 dup(0) data endsstack segment stackdb 128 dup(0) stack endscode segmentstart: mov ax, stackmov ss, axmov sp, 128call cpy_Bootmov ax, 4C00Hint 21H;========================================== Boot: mov ax, 1000Hmov ax, 1000Hmov ax, 1000Hmov ax, 1000HBoot_end: nop ; =========================================== cpy_Boot:mov bx, csmov ds, bxmov si, OFFSET Boot ; ds:[si] 從 Boot 開始復制mov bx, 0mov es, bxmov di, 7E00H ; es:[di] 復制到 段地址:偏移地址 0000H:7E00Hmov cx, OFFSET Boot_end - Boot ; 復制次數cld ; DF = 0rep movsb ; 復制屏幕上的東西 ; rep重復 movsb 復制字節 ;每執行一次都會自動執行 inc si inc di,無需自己調用; dec si dec diretCODE ENDS ; 結束 END START
  • rep movsb 復制字節
    • b相當于byte
  • rep movsw 復制字
    • w相當于word

assume cs:code, ds:data, ss:stackdata segmentdb 128 dup(0) data endsstack segment stackdb 128 dup(0) stack endscode segmentstart: mov ax, stackmov ss, axmov sp, 128call init_regcall cpy_screenmov ax, 4C00Hint 21H; =========================================================== cpy_screen:mov cx, 24mov si, 160mov di, 0cpyScreenRow:push cxpush sipush dimov cx, 80cldrep movswpop dipop sipop cxadd si, 160add di, 160loop cpyScreenRow;============================================================ init_reg:mov bx, 0B800Hmov ds, bxmov es, bxretCODE ENDS ; 結束 END START 標志真值為1假值為0
OFOVNV. OV = OverflowNV = not overflow
SFNGPLNG = negativePL = Positive
ZFZRNZZR = ZeroNZ = not Zero
PFPEPOPE = EVENPO = ODD
CFCYNCCY = Carry YesNc = not Carry
DFDNUPDn = DownUP

中斷標志

IF = 1時,允許CPU響應可屏蔽中斷,IF = 0時,禁止響應可屏蔽中斷。執行STI指令可使IF置1,CLI指令使IF清0.

陷阱標志

TF也稱為單步標志,它是為調試程序提供方便而設置的。若TF置1,則使CPU處于單步工作方式,每執行完一條指令,自動產生一次單步中斷,將寄存器、存儲器等內容顯示在屏幕上,用戶可查看本條指令執行后的結果,以便逐條檢查指令執行結果。若TF = 0,則程序正常運行。

總結

以上是生活随笔為你收集整理的汇编语言 标志位的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成年人免费在线观看视频网站 | 对白超刺激精彩粗话av | 理论片毛片 | 毛片一级在线观看 | 亚洲精品国产欧美在线观看 | 黄色喷水视频 | 亚洲综合精品国产一区二区三区 | 亚洲国产日韩一区无码精品久久久 | 国产粉嫩在线 | 亚洲在线影院 | 波多野结衣在线一区二区 | 四虎福利 | 丁香综合网 | 欧美精品免费在线观看 | 五十路在线观看 | 噜噜噜在线 | 天码人妻一区二区三区在线看 | 欧美精品videos另类日本 | 123超碰 | 欧美一级啪啪 | 亚洲丝袜在线观看 | 亚洲 欧美 中文字幕 | 福利网站在线观看 | 午夜嘿嘿嘿 | 成人免费超碰 | 百合sm惩罚室羞辱调教 | 各处沟厕大尺度偷拍女厕嘘嘘 | 日韩美女视频一区 | 99热1 | 欧美成人一区二区三区片免费 | 国产精品免| 亚洲一级一区 | 久久久久久亚洲 | 97久久超碰 | 亚洲黄色av网站 | 中文字幕免费高 | 无套中出丰满人妻无码 | av观看免费 | 精品热| 亚洲视频网站在线观看 | 国内视频一区二区三区 | 国产视频一区二区在线 | 性xxxx搡xxxxx搡欧美 | 超碰香蕉| 国产一区a| 亚洲成人一级 | 日日噜噜夜夜爽爽 | 97免费超碰| 欧美美女黄色 | 91精品综合久久久久久五月天 | 成av人片一区二区三区久久 | 国产麻豆成人传媒免费观看 | 国产欧美一区二区三区在线老狼 | 一区二区三区日本视频 | 亚洲区在线播放 | 亚洲色图欧美色 | 美痴女~美人上司北岛玲 | 宿舍女女闺蜜调教羞辱 | 欧美色图19p| 国产精品亚州 | 一区二区美女 | 青青视频免费看 | av在线观看地址 | 雪花飘电影在线观看免费高清 | av天天堂 | 国模小丫大尺度啪啪人体 | 日本三级黄色录像 | 亚洲无吗av | 手机在线精品视频 | 亚洲美女自拍视频 | 毛片看看 | 久久久久久色 | 免费性情网站 | 亚洲美女综合网 | 99国产精品久久久久久久 | 久久久久国产精品熟女影院 | av大全在线播放 | 麻豆av一区二区三区 | 亚洲欧美一区二区三区在线 | 久久国产中文字幕 | 亚洲成人999 | 天天干天天舔天天射 | 女futa攻玩遍整个后宫 | av天天有| 人禽l交视频在线播放 视频 | 欧美成年人 | 自拍偷拍激情视频 | 26uuu欧美日本| 久久久久久无码精品人妻一区二区 | 国内精品第一页 | 看av免费毛片手机播放 | 国产又粗又黄又爽又硬的视频 | www四虎com| a√天堂资源在线 | 九九看片 | 少妇做爰免费视频播放 | 很黄很黄的网站 | 韩国中文字幕在线观看 | 国产性生活网站 |