School Commit Init
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
#include<stdio.h>
|
||||
void subprogram(int* p,int a);
|
||||
int main(){
|
||||
int a=0x12345678;
|
||||
int p[8];
|
||||
subprogram(p,a);
|
||||
for (int i=7;i>=0;i--){
|
||||
printf("%x ",p[i]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
bits 32
|
||||
global _subprogram
|
||||
|
||||
segment code use32 class=code public
|
||||
_subprogram:
|
||||
mov ECX,8
|
||||
mov EBX,[ESP+4]
|
||||
mov EAX,[ESP+8]
|
||||
.label:
|
||||
mov [EBX+ECX*4-4],EAX
|
||||
rol EAX,4
|
||||
loop .label
|
||||
ret
|
||||
@@ -0,0 +1,13 @@
|
||||
#include<stdio.h>
|
||||
|
||||
void subprogram(char a[], int b[]);
|
||||
|
||||
int main(){
|
||||
char a[]="10100111b01100011b110b101011b";
|
||||
int b[]={0,0,0,0,0,0,0,0,0,0};
|
||||
subprogram(a,b);
|
||||
for (int i=0;b[i]!=0;i++){
|
||||
printf("%d ",b[i]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
bits 32
|
||||
global _subprogram
|
||||
|
||||
segment code use32 class=code public
|
||||
_subprogram:
|
||||
cld
|
||||
mov ESI,[ESP+4]
|
||||
mov EDI,[ESP+8]
|
||||
mov EAX,0
|
||||
mov EBX,0
|
||||
label:
|
||||
lodsb
|
||||
cmp byte AL,0
|
||||
je end
|
||||
cmp byte AL,'b'
|
||||
jne skip
|
||||
mov EAX,EBX
|
||||
stosd
|
||||
mov EBX,0
|
||||
jmp label
|
||||
skip:
|
||||
sub AL,'0'
|
||||
mov ECX,0
|
||||
mov Cl,AL
|
||||
mov EAX,EBX
|
||||
mov EDX,2
|
||||
mul EDX
|
||||
mov EBX,EAX
|
||||
add EBX,ECX
|
||||
jmp label
|
||||
end:
|
||||
ret
|
||||
Reference in New Issue
Block a user