Sie sind auf Seite 1von 7

PH209: ASSIGNMENT 1

PROBLEM # 1

.MODEL SMALL .STACK .DATA X DB 10 Y DB 12 SUM DB 14 C_SUM DB 16 .CODE .STARTUP MOV AL, [x] ; Load contents of x to reg AL MOV BX, 0H ; Clear contents of BL register MOV CL, 00H ; Clear contents of register CL ADD BX,AL ; Add contents of AL to BX JNC JUMP ; If no carry is generated, go to jump INC CL ; If Carry is generated then store 1 in DL MOV [SUM], BX ; Copy contents of BX to memory location sum MOV [C_SUM], CL ; Copy contents of CL to c_sum END START ; ; ; ;

START: JUMP:

PROBLEM # 2 .MODEL SMALL .STACK .DATA x DB 10 y DB 12 SUM DB 14 C_SUM DB 16 .CODE .STARTUP MOV AX, [x] ;Load contents of memory location MOV BX, 0H MOV CL, 0H ADD BX, [y] JNC JUMP INC CX MOV [SUM], BX MOV [C_SUM], CL END START ; ; ; ;

START: JUMP:

PROBLEM # 3 .MODEL SMALL .STACK .DATA x DB 10 y DB 12 SUM DB 14 C_SUM DB 16 .CODE .STARTUP MOV AX, [x] ;Load contents of memory location MOV BX, [y] MOV CL, 0H ADD BL, AL ADC BH,AH JNC JUMP INC CX MOV [SUM], BX MOV [C_SUM], CL END START ; ; ; ;

START: JUMP:

PROBLEM # 4 .MODEL SMALL .STACK .DATA SUM DB 10 .CODE .STARTUP MOV AL, 0AH MOV BL, 00H ADD BX, AL DEC AL JNZ repeat; MOV [SUM], BX END START ; Load 0A into AL register ; Load 00 into BX register ; Add contents of AL to BX ;Decrement AL ;If result of previous step is non zero then repeat. ;Store result in memory location sum ;

START: REPEAT:

PROBLEM # 5

.MODEL SMALL .STACK .DATA SUM DB 10 .CODE .STARTUP MOV AL, 0AH MOV CL, AL; MOV BL, 00H ADD BX, AL MUL CL, CL DEC AL JNZ repeat; END START ; Load 0A into AL register. ; Copy contents of AL to CL. ; Load 00 into BX register. ; Add contents of AL to BX. ; Multiply contents of CL with itself i.e square. ; Decrement AL. ; If result of previous step is non zero then repeat. ;

START: REPEAT:

PROBLEM # 6

.MODEL SMALL .STACK .DATA AVG DB 10 REM DB 12 .CODE .STARTUP MOV AL, 0AH MOV BL, 00H ADD BX, AL DEC AL JNZ repeat; MOV AL, 0AH MOV CL, 00H SUB BX,AL INC CL CMP BX,AL JNB REP1 MOV [AVG], CL MOV [REM], BX END START ; Load 0A into AL register ; Load 00 into BX register ; Add contents of AL to BX ;Decrement AL ;If result of previous step is non zero then repeat. ; ; ; ; ; ; ; ; ; ;

START: REPEAT: REP1:

PROBLEM # 7

.MODEL SMALL .STACK .DATA SUM DB 10 LOC_N DB 14 DIVISIBLE DB 16 .CODE .STARTUP MOV AL, 0AH ; Load 0A into AL register MOV BL, 00H ; Load 00 into BX register ADD BX, AL ; Add contents of AL to BX DEC AL ;Decrement AL JNZ repeat; ;If result of previous step is non zero then repeat. MOV [SUM], BX ;Store result in memory location sum MOV AX, [LOC_N] ; CMP BX,AX JB STP_SUB SUB BX,AX JMP CNT_SUB CMP BX,0H JE DIVI JMP NDIVI MOV [LOC_N], 0H MOV [ LOC_N], 1H END START ;

START: REPEAT: CNT_SUB: STP_SUB: DIVI: NDIVI:

PROBLEM # 8 .MODEL SMALL .STACK .DATA X DB 45H ;45 stored in variable X .CODE .STARTUP START: MOV AX, [X] ;Load contents at memory location x into AX MOV BL, 0H ; MOV CL 10H REPEAT: SHL AX, 01 ;Logical Shift Left Contents of AX by 1 JNC CONTINUE INC BL CONTINUE: DEC CL JZ REPEAT END START

PROBLEM # 9 START: REPEAT:

.MODE SMALL .STACK .CODE MOV AX, [20] MOV BX, 0H MOV CL, 10H SHL AX, 01 ADD BX, CF ROR BX DEC CL JNZ repeat END START ;Copy contents of memory location 20 into AX ;Clear contents of BX ;Load number (decimal)16 into CL ;Logical Shift Left Contents of AX by 1 ; Add contents of CF to BX ;Rotate Right ;decrement CL to keep track of no. of rotations ; Go to repeat if CL is non zero

PROBLEM # 10.

.MODE SMALL .STACK .DATA AR DB 10 COUNT DB 20 .CODE MOV AL, [AR] MOV AH, [COUNT] MOV BL, [AL] INC AL CMP BL, [AL] JBE REPLACE DEC AH JNZ INCRS MOV BL, [AL] DEC AH JNZ INCRS END START ;Move the location of 1st element into AL ;Move the number of elements into AH ;Move the 1st element into BL ;Increase AL by 1 ;Compare BL with memory specied by AL ;If BL<=[AL] then goto Replace ; ; ;Move contents of [AL] into BL ; ; ;

START: INCRS: REPLACE:

PROBLEM # 12 .MODE SMALL .STACK .DATA ARX DB 100 ARY DB 200 COUNT DB 20 DOTPROD DB 30 .CODE MOV AL, ARX MOV AH, ARY MOV DL, [COUNT] MOV CX, 00H DEC AL DEC AH INC AL INC AH MOV BL, [AL] MOV BH,[AH] CLC MUL BH,BL ADC CX, BH DEC DL JNZ REPEAT MOV [DOTPROD], CX END START

START: REPEAT:

PROBLEM # 13 START: STORE: .MODE SMALL .STACK .DATA X_IN DB 10 BIT_10 DB 12 .CODE MOV AX, [X_IN] MOV BL, 0 ; AND AX, 0200 JC STORE MOV BL,1 MOV [BIT_10], BL END START ; ; ; ; ;

PROBLEM # 14 START:

.MODE SMALL .STACK .DATA X_IN DB 10 BIT_10 DB 12 .CODE MOV AL,BL MOV AH,BH MOV AH,BL MOV AL,BH END START

PROBLEM # 15 START: DIVIDE1: EXIT: PROBLEM # 16

MODE SMALL .STACK .DATA X DB 10 Y DB 12 GCD DB 14 .CODE MOV AX, [X] MOV BX, [Y] CMP AX,BX JBE DIVIDE1 DIV BX, AX MOV [GCD] END START

Das könnte Ihnen auch gefallen