Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int main(){
- char *s = "Abcaabdsaa"; //char * s = "Abcdefg";
- char t[]={0};
- //short int y;
- short int a=0;
- //char t[]={0,0,0,0,0,0,0,0};
- asm volatile(
- ".intel_syntax noprefix;"
- "mov ecx,%0;"
- "mov edx,2;"
- "mov ebx,1;"
- "mov eax,4;"
- "mov al,[ecx];"
- "cmp al,'a';"
- "je dodaj;"
- "dodaj:"
- "inc cx;"
- //"int 0x26;"
- ".att_syntax prefix;"
- :
- :"r"(s)
- :"ebx","ecx","edx","eax"
- );
- printf("\n s= %s %i",s,a);
- }
- #include <stdio.h>
- int main(){
- char s[] = "Abcdefg"; //char * s = "Abcdefg";
- //short int y;
- char t[]={0,0,0,0,0,0,0,0};
- asm volatile(
- ".intel_syntax noprefix;"
- /* "mov ebx,%1;"
- "xor cx,cx;" //"mov cx,0;"
- "petla:"
- "mov al,[ebx];"
- "cmp al,0;"//"sub al,0;"
- "jz koniec;"
- "inc cx;"
- "inc ebx;"
- "jmp petla;"
- "koniec:"
- "mov %0,cx;"
- "mov ebx,%1;"
- "call zliczznaki;"
- //"push ax;" //naprawienie ax
- "mov %0,cx;"
- "jmp wyjscie;"
- "zliczznaki:"
- "xor cx,cx;"
- "petla:"
- "mov al,[ebx];"
- "cmp al,0;"
- "jz koniec;"
- "inc cx;"
- "inc ebx;"
- "jmp petla;"
- "koniec:"
- // "pop ax;"
- "ret;"
- "wyjscie:"
- skutki uboczne : zniszcznie al
- */
- //nowy prog
- "mov ebx,%0;"
- "mov ecx,%1;"
- "call przepiszznak;"
- "inc ebx;"
- "inc ecx;"
- "call przepiszznak;"
- // do domu ma przepisac male na duze i duze na male
- "jmp wyjscie;"
- "przepiszznak:"
- "push ax;"
- "mov al,[ebx];"
- "mov [ecx],al;"
- "pop ax;"
- "ret;"
- "wyjscie:"
- ".att_syntax prefix;"
- :
- :"r"(s),"r"(t)
- :"ebx","ecx"
- //pierwszy program
- //:"=r" (y)
- //: "r" (s)
- //: "ebx","cx","al"
- );
- printf("\n s= %s y= %s \n",s,t);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement