StrNCpyAsm, Assembly Language

Assignment Help:
;StrNCpyAsm - copy zero terminated string2 to zero terminated string1,
; but copy no more than count (parameter) characters
; or the length of string2, whichever comes first
; entry: - addStr1 contains the address of string1
; - addStr2 contains the address of string2
; - count contains the max number of characters to copy
; exit: NONE (no return value so do not use edi to return an address)
;
; Note: StrNCpyAsm does not zero terminate the copied string
; unless the 0 is within count characters copied.
;
; example1: char str1[]= {''h'',''e'',''l'',''l'',''o'','' '',''w'',''o'',''r'',''l'',''d'',0};
; char str2[]= {''G'',''o'',''o'',''d'',''-'',''b'',''y'',''e'',0};
; StrNCpyAsm(str1,str2,4);//terminating 0 not copied since only 4 characters copied
; ;//and terminating 0 not within the 4 characters
; after copy str1 contains: ''G'',''o'',''o'',''d'',''o'','' '',''w'',''o'',''r'',''l'',''d'',0
;
; example2: use str1 and str2 from example1
;
; StrNCpyAsm(str1,str2,9); //terminating 0 copied since terminating 0
; //within 9 characters copied
; str1 contains: ''G'',''o'',''o'',''d'',''-'',''b'',''y'',''e'',0,''l'',''d'',0
;
; example3: use str1 and str2 from example1
;
; StrNCpyAsm(str1,str2,20);//copy 20 characters upto and including 0,
; //whichever comes first
; //only 9 characters including 0 copied
; after copy str1 contains: ''G'',''o'',''o'',''d'',''-'',''b'',''y'',''e'',0,''l'',''d'',0
;
; The above is how you would call StrNCpyAsm from C++.
;
; To call StrNCpyAsm from an asm function use:
;
; push 20 ;max num of characters to copy
; push str2Add ;address of string 2
; push str1Add ;address of string 1
; call StrNCpyAsm
; ;no add esp, 12 needed because stack cleaup automatically done
;
;Do not use a loop in this function.
;Choose 2 instructions from the following string instructions to use:
; rep, repe, repne, movsb,stosb,cmpsb,scasb
;
; hint1: use StrLenAsm to get the number of characters in str2
; hint2: the length returned by StrLenAsm does not include terminating 0
; hint3: copy the lesser of the length of the string (including terminating 0)
; or count characters
;copy to ecx the lesser of count or the length of string2 (including terminating 0)
; Please note for the above, you need the length of string2 including terminating 0.
; StrLenAsm returns the length not including terminating 0
;populate esi and edi with the correct values
;clear the direction flag
;use rep and movsb to copy
;
;

StrNCpyAsm PROC uses eax esi edi ecx , ;save registers used
addStr1:DWORD, ;address of string1
addStr2:DWORD, ;address of string2
count:DWORD ;max chars to copy

Related Discussions:- StrNCpyAsm

End-endp-assemblers directive-microprocessor, END : END of Program:- Th...

END : END of Program:- The END directive marks the ending of the assembly language program. When the assembler comes across this END directive, it avoided the source lines avai

Motorola 68000 series, Motorola 68000 Series : 68000microprocessor is a...

Motorola 68000 Series : 68000microprocessor is a 16 bit processor that has addressing space of 65536 locations, each of which holds a 64-bits word; In order to address those lo

Fourth generation microprocessor, Fourth  Generation Microprocessor : T...

Fourth  Generation Microprocessor : The single chip 32-bit microprocessor was introduced in 1981 by Intel as iAPX 432. The other 4th generation  microprocessors  were;  Hewlett

Introduction to evaluation, This unit introduces the topic of evaluating in...

This unit introduces the topic of evaluating interactive products. It is a short unit as evaluation is discussed in more detail in Block 4. Its brevity should give you additional t

Das-arithmetic instruction-microprocessor, DAS: Decimal Adjust after Subtr...

DAS: Decimal Adjust after Subtraction:- This instruction converts the result of subtraction operation of 2 packed BCD numbers to a valid BCD number. The subtraction operation has

Dec-arithmetic instruction-microprocessor, DEC:  Decrement :- The decremen...

DEC:  Decrement :- The decrement instruction subtracts 1 from the contents of the particular memory location or register. All the conditions code flags except carry flag are affec

Bcsl-022, define accounting.briefly explain the accounting concepts which g...

define accounting.briefly explain the accounting concepts which guide the accountant at the recording stage.

Arm assembly language code, You will need to upload your main.c and factori...

You will need to upload your main.c and factorial.s files and a .jpg photo of the output on your board using the Vista assignment upload features.  It must be submitted by the dead

Neg-arithmetic intruction-microprocessor, NEG: Negate:- The negate instruc...

NEG: Negate:- The negate instruction forms the 2's complement of the particular destination in the instruction. For obtaining 2's complement, it subtracts the contents of destinat

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd