1 / 19

Assembly For X86

Assembly For X86. Chapter 3 פקודות בסיסיות. סוגי פקודות. פקודות להעברת מידע פקודות אריטמטיות פקודות לוגיות פקודות הסתעפות פקודות מחרוזת פקודות בקרה פקודות ל- Protected Mode. מבנה הפקודות. פקודה. אופרנד ,אופרנד. MOV AX , 56 ADD [SI] , DL CMP CX , BX. יעד. מקור.

ziv
Télécharger la présentation

Assembly For X86

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Assembly For X86 Chapter 3 פקודות בסיסיות

  2. סוגי פקודות • פקודות להעברת מידע • פקודות אריטמטיות • פקודות לוגיות • פקודות הסתעפות • פקודות מחרוזת • פקודות בקרה • פקודות ל- Protected Mode

  3. מבנה הפקודות פקודה אופרנד ,אופרנד MOV AX , 56 ADD [SI] , DL CMP CX , BX יעד מקור ; כתיבת הערות

  4. MOV MOV DX,3456H MOV AL,32H MOV AX,11110000B MOV AH,DL MOV [BX+1],DL MOV BX,1000H MOV AL,88 MOV [BX],AL MOV SI,819H MOV DH,[SI]

  5. שגיאות נפוצות MOV [300],6 MOV [AX],DL MOV [BX],BL MOV [BX],[DI] MOV [BX+AX],DL MOV [SI+DI],BH ;[BX+SI] / [BX+DI] MOV [SI],47H

  6. תוכנית להחלפת שני נתונים בזיכרון CODE SEGMENT ASSUME CS:CODE,DS:CODE START: MOV SI,700H MOV DI,800H MOV AL,[SI] MOV AH,[DI] MOV [SI],AH MOV [DI],AL CODE ENDS END START

  7. INC הפקודה INC DL ;DL=DL+1 INC SI ;SI=SI+1 INC [SI] ;ERROR DEC הפקודה DEC DL ;DL=DL-1 DEC SI ;SI=SI-1 DEC [SI] ;ERROR

  8. ADD ADD CH,5 ;CH=CH+5 ADD DI,67 ADD BX,AX ADD DL,DL ADD AL,[BX] ADD [DI],CL ADD [BX],4 ;ERROR ADD [SI],[DI] ADD CX,DH ;ERROR 8/16 BIT ADD AL,590H ;OVERFLOW

  9. SUB SUB AL,7 SUB [BX],DL SUB DL,DH CMP CMP AL,7 ;AL - 7 CMP BX,CX CMP [SI],CL CMP [SI],[DI] ;ERROR CMP [BX],4 CMP AL,BX ;8/16 BIT

  10. JMP MOV AL,3 MOV BL,88 JMP lbl MOV DX,22 ; שורה זו לא מתבצעת lbl: MOV DX,11 עבור התווית מותר להשתמש האותיות ספרות או התווים הבאים $ , @ , _ , ? , . אסור להכניס רווחים או להשתמש במילים שמורות אסור להתחיל בספרה או בנקודה

  11. CONDITIONAL JUMP JE - JUMP IF EQUAL JNE - JUMP IF NOT EQUAL JG - JUMP IF GREATER JL - JUMP IF LESS JGE - JUMP IF GREATER OR EQUAL JLE - JUMP IF LESS OR EQUAL JZ - JUMP IF ZERO JNZ - JUMP IF NOT ZERO JC - JUMP IF CARRY JO - JUMP IF OVERFLOW JP - JUMP IF PARITY

  12. דוגמאות CMP AL,DL JG BYE MOV AL,0 MOV DL,0 BYE: NOP MOV SI,449H MOV DL,[SI] CMP DL,3 JNE SOF MOV SI,800H MOV AL,0FFH ; חייבים אפס מוביל MOV [SI],AL SOF: NOP

  13. מה מבצעת התוכנית MOV SI,500H MOV DI,550H MOV AL,[SI] MOV DL,[DI] CMP AL,DL JZ SOF MOV [SI],DL MOV [DI],AL SOF: NOP משווה בין תאי הזיכרון 550,500 ואם הם שונים ערכיהם מוחלפים

  14. לולאות SEG SEGMENT ASSUME CS:SEG,DS:SEG BEGIN: MOV AX,SEG MOV DS,AX MOV AL,8 ;THE VALUE MOV BX,400H ;THE ADDRESS MOV CX,21H ;COUNTER AGAIN: MOV [BX],AL INC BX DEC CX ;LOOP AGAIN JNZ AGAIN ; SEG ENDS END BEGIN

  15. דוגמאות נתון מערך תווים בכתובות 140-180 יש לבדוק את מספר המופעים של האות A CODE SEGMENT ASSUME CS:CODE,DS:CODE START: MOV AX,CODE MOV DS,AX MOV AL,0 ;THE RESULT MOV BX,140H MOV CX,41H CHECK: MOV AH,[BX] CMP AH,11H JNE CONT INC AL CONT: INC BX LOOP CHECK CODE ENDS END START

  16. בדיקת מיון של בלוק נתונים CODE SEGMENT ASSUME CS:CODE,DS:CODE START: MOV AX,CODE MOV DS,AX MOV SI,800H ;STARTING ADDRESS MOV CX,9H ;SIZE OF ARRAY = 10 CHECK: MOV DL,[SI] CMP DL,[SI+1] JNL BAD INC SI LOOP CHECK JMP GOOD BAD: MOV AX,0 ;FUNCTION RETURN 0 JMP SIUM GOOD: MOV AX,0FFH SIUM: NOP CODE ENDS END START

  17. סיכום תאי מערך CODE SEGMENT ASSUME CS:CODE,DS:CODE START: MOV AX,CODE MOV DS,AX MOV SI,1000H ;START MOV CX,5 ;SIZE OF ARRAY MOV AL,0 CONT: ADD AL,[SI] INC SI LOOP CONT MOV SI,1200H ;RESULT ADDRESS MOV [SI],AL CODE ENDS END START

  18. מבנה תוכנית DATA1 segment …. DATA1 ends ST segment stack … ST ends CODE1 segment ASSUME cs:CODE1, ds:DATA1, ss:ST Start: mov AX,DATA1 mov DS,AX ….. גוף התוכנית …. CODE1 ENDS END Start

  19. גישה עדיפה .model small .stack 100h .data disp db 'hello world',13,10,'$' .code begin: mov ax,@data mov ds,ax ….גוף התוכנית end begin

More Related