Assembly for x86
This presentation is the property of its rightful owner.
Sponsored Links
1 / 19

Assembly For X86 PowerPoint PPT Presentation


  • 82 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Assembly for x86

Assembly For X86

Chapter 3

פקודות בסיסיות


Assembly for x86

סוגי פקודות

  • פקודות להעברת מידע

  • פקודות אריטמטיות

  • פקודות לוגיות

  • פקודות הסתעפות

  • פקודות מחרוזת

  • פקודות בקרה

  • פקודות ל- Protected Mode


Assembly for x86

מבנה הפקודות

פקודה

אופרנד ,אופרנד

MOVAX , 56

ADD[SI] , DL

CMPCX , BX

יעד

מקור

; כתיבת הערות


Assembly for x86

MOV

MOVDX,3456H

MOVAL,32H

MOV AX,11110000B

MOVAH,DL

MOV[BX+1],DL

MOVBX,1000H

MOVAL,88

MOV[BX],AL

MOVSI,819H

MOVDH,[SI]


Assembly for x86

שגיאות נפוצות

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


Assembly for x86

תוכנית להחלפת שני נתונים בזיכרון

CODE SEGMENT

ASSUME CS:CODE,DS:CODE

START:MOVSI,700H

MOVDI,800H

MOVAL,[SI]

MOVAH,[DI]

MOV[SI],AH

MOV[DI],AL

CODE ENDS

END START


Assembly for x86

INC הפקודה

INCDL;DL=DL+1

INCSI;SI=SI+1

INC[SI];ERROR

DEC הפקודה

DECDL;DL=DL-1

DECSI;SI=SI-1

DEC[SI];ERROR


Assembly for x86

ADD

ADDCH,5;CH=CH+5

ADDDI,67

ADDBX,AX

ADDDL,DL

ADDAL,[BX]

ADD[DI],CL

ADD[BX],4;ERROR

ADD[SI],[DI]

ADDCX,DH;ERROR 8/16 BIT

ADDAL,590H;OVERFLOW


Assembly for x86

SUB

SUBAL,7

SUB[BX],DL

SUBDL,DH

CMP

CMPAL,7;AL - 7

CMPBX,CX

CMP[SI],CL

CMP[SI],[DI];ERROR

CMP[BX],4

CMPAL,BX;8/16 BIT


Assembly for x86

JMP

MOVAL,3

MOVBL,88

JMPlbl

MOVDX,22; שורה זו לא מתבצעת

lbl:MOVDX,11

עבור התווית מותר להשתמש האותיות ספרות או התווים הבאים

$ , @ , _ , ? , .

אסור להכניס רווחים או להשתמש במילים שמורות

אסור להתחיל בספרה או בנקודה


Conditional jump

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


Assembly for x86

דוגמאות

CMPAL,DL

JGBYE

MOVAL,0

MOVDL,0

BYE:NOP

MOVSI,449H

MOVDL,[SI]

CMPDL,3

JNESOF

MOVSI,800H

MOVAL,0FFH; חייבים אפס מוביל

MOV[SI],AL

SOF:NOP


Assembly for x86

מה מבצעת התוכנית

MOVSI,500H

MOVDI,550H

MOVAL,[SI]

MOVDL,[DI]

CMPAL,DL

JZSOF

MOV[SI],DL

MOV[DI],AL

SOF:NOP

משווה בין תאי הזיכרון 550,500 ואם הם שונים ערכיהם מוחלפים


Assembly for x86

לולאות

SEGSEGMENT

ASSUME CS:SEG,DS:SEG

BEGIN:MOVAX,SEG

MOVDS,AX

MOVAL,8;THE VALUE

MOVBX,400H;THE ADDRESS

MOVCX,21H;COUNTER

AGAIN:MOV[BX],AL

INCBX

DECCX;LOOP AGAIN

JNZAGAIN;

SEG ENDS

END BEGIN


Assembly for x86

דוגמאות

נתון מערך תווים בכתובות 140-180 יש לבדוק את מספר המופעים של האות A

CODE SEGMENT

ASSUME CS:CODE,DS:CODE

START:MOVAX,CODE

MOVDS,AX

MOVAL,0 ;THE RESULT

MOVBX,140H

MOVCX,41H

CHECK:MOVAH,[BX]

CMPAH,11H

JNECONT

INC AL

CONT:INCBX

LOOP CHECK

CODE ENDS

END START


Assembly for x86

בדיקת מיון של בלוק נתונים

CODE SEGMENT

ASSUME CS:CODE,DS:CODE

START:MOVAX,CODE

MOV DS,AX

MOVSI,800H ;STARTING ADDRESS

MOVCX,9H;SIZE OF ARRAY = 10

CHECK:MOVDL,[SI]

CMPDL,[SI+1]

JNLBAD

INC SI

LOOP CHECK

JMPGOOD

BAD:MOV AX,0;FUNCTION RETURN 0

JMPSIUM

GOOD:MOVAX,0FFH

SIUM:NOP

CODE ENDS

END START


Assembly for x86

סיכום תאי מערך

CODE SEGMENT

ASSUME CS:CODE,DS:CODE

START:MOVAX,CODE

MOVDS,AX

MOVSI,1000H;START

MOVCX,5;SIZE OF ARRAY

MOVAL,0

CONT:ADDAL,[SI]

INCSI

LOOP CONT

MOVSI,1200H;RESULT ADDRESS

MOV[SI],AL

CODE ENDS

END START


Assembly for x86

מבנה תוכנית

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


Assembly for x86

גישה עדיפה

.model small

.stack 100h

.data

disp db 'hello world',13,10,'$'

.code

begin:

mov ax,@data

mov ds,ax

….גוף התוכנית

end begin


  • Login