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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

汇编-简单的条件转移指令应用-附例子:判断坐标所在象限

發布時間:2024/4/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编-简单的条件转移指令应用-附例子:判断坐标所在象限 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在匯編分支程序設計中,條件轉移指令扮演著很重要的角色

首先讓我們認識一下簡單的條件轉移指令:
這些指令都是通過flag寄存器中的標志位進行判斷的
一般情況下使用CMP指令影響標志位結合這些指令執行

相當于高級語言的if,else

如圖:

例題:

做出分析:
主要是判斷是否為0,以及它的正負情況。
所以:
主要應用條件轉移指令,判斷不同象限,主要指令:JZ/JE,JNS/JS,JMP

假設:
為方便查看結果,可將K輸出為對應的ascll字符,既是48到52,達到k=i的顯示效果

那么代碼部分:

數據段:

判斷坐標位置的子過程:

judgement:;判斷X,Y;X或者Y為0,為坐標軸一點CMP X,0JZ TO_XYCMP Y,0JZ TO_XY;為象限上一點CMP X,0;X>0時,在1,4JNS TO_14;JS TO_23;X<0時,在2,3CMP Y,0;第2象限JNS TO_2;第3象限MOV K ,51JMP BREAKTO_14:CMP Y,0;第1象限JNS TO_1;第4象限MOV K ,52JMP BREAK;跳轉到0,代表坐標軸TO_XY:MOV K ,48JMP BREAK;第1象限TO_1:MOV K ,49JMP BREAK;第2象限TO_2:MOV K ,50JMP BREAKBREAK: CALL print RET

輸出象限子過程:

print:;輸出象限與回車MOV DX,OFFSET KMOV K[1],'$'MOV AH,09HINT 21HMOV AH,02HMOV DL,0AHINT 21H RET

主過程:

STRAT:MOV AX,DATAMOV DS,AX;原點(0,0)CALL judgement;給出正負MOV CX,5MOV BX,0FFF5H;1象限(5,5)MOV X,CXMOV Y,CXCALL judgement;2象限(-5,5)MOV X,BXCALL judgement;3象限(-5,-5)MOV Y,BXCALL judgement;4象限(5,-5)MOV X,CXCALL judgementMOV AH,4CHINT 21H

可以得到結果:

完整源代碼:

;@author:joker ;@date: 2020-5-11 ;@description: 第十次作業第一題;判斷象限和坐標軸;以ascll碼為k=i;x,y為原點與4個象限坐標,自動擴展為字變量 DATA SEGMENTX DW 0H;橫坐標Y DW 0H;縱坐標K DB 0H;象限i的ascll碼 DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA print:;輸出象限與回車MOV DX,OFFSET KMOV K[1],'$'MOV AH,09HINT 21HMOV AH,02HMOV DL,0AHINT 21H RET judgement:;判斷X,Y;X或者Y為0,為坐標軸一點CMP X,0JZ TO_XYCMP Y,0JZ TO_XY;為象限上一點CMP X,0;X>0時,在1,4JNS TO_14;JS TO_23;X<0時,在2,3CMP Y,0;第2象限JNS TO_2;第3象限MOV K ,51JMP BREAKTO_14:CMP Y,0;第1象限JNS TO_1;第4象限MOV K ,52JMP BREAK;跳轉到0,代表坐標軸TO_XY:MOV K ,48JMP BREAK;第1象限TO_1:MOV K ,49JMP BREAK;第2象限TO_2:MOV K ,50JMP BREAKBREAK: CALL print RET STRAT:MOV AX,DATAMOV DS,AX;原點(0,0)CALL judgement;給出正負MOV CX,5MOV BX,0FFF5H;1象限(5,5)MOV X,CXMOV Y,CXCALL judgement;2象限(-5,5)MOV X,BXCALL judgement;3象限(-5,-5)MOV Y,BXCALL judgement;4象限(5,-5)MOV X,CXCALL judgementMOV AH,4CHINT 21HCODE ENDS END STRAT

完。
加油!相信自己!

提示:代碼雖好,但步驟同樣重要,動手更重要!

總結

以上是生活随笔為你收集整理的汇编-简单的条件转移指令应用-附例子:判断坐标所在象限的全部內容,希望文章能夠幫你解決所遇到的問題。

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