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

The pin diagram of 8088-microprocessor, Pin diagram of 8088 : The pin ...

Pin diagram of 8088 : The pin diagram of 8088 is shown in given figure. Most of the 8088 pins and their functions are exactly similar to the corresponding pins of 8086.  Hence

Xor-logical instruction-microprocessor, XOR: Logical Exclusive OR: The XOR...

XOR: Logical Exclusive OR: The XOR operation is again carried out in a similar way to the AND and OR operation. The constraint over operands are also similar. The XOR operation pr

Program to add contents in memory-machine level programs, Example : Add th...

Example : Add the contents of the 2000H: 0500H memory location to contents of 3000H: 0600H and store the result in 5000H: 0700H. Solution : Unlike the past example progra

ISBN CHECK, How do i convert a asci number to numerals?

How do i convert a asci number to numerals?

Ror-logical instruction-microprocessor, ROR : Rotate Right without Carry: ...

ROR : Rotate Right without Carry: This instruction rotates the contents of destination operand to the bit-wise right either by one or by the count specified in register CL, exclud

Program that will compute and output tuition cost, Write an assembly progra...

Write an assembly program that will compute and output tuition cost: a. accept keyboard input of the number of credit hours taken b. accept keyboard input of the type of classes 1

Queue operation-microprocessor, Queue Operation :   RQ/CT0, RQ...

Queue Operation :   RQ/CT0, RQ/G1-Request/Grant:   These pins are utilized by other local bus masters, in themaximum mode, to force the processor to release the loca

Dma controller-microprocessor, DMA controller :     Steps in...

DMA controller :     Steps include in transferring a block of data from I/O devices (for example a disk) to memory: 1. CPU sends a signal to initiate disk transfe

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