Feeds:
文章
留言

Archive for 九月 30th, 2005

字串反轉

#include <iostream>
void main(void){
 const char str[] = "ArickLoveMavis";
 //int len = strlen2(str);
 std::cout << str << std::endl;
 _asm{
  mov  ebx, 0      ; iterator
for: 
  mov  al, str[ebx]     ;
  push al
  inc  ebx       ;
  cmp  al, 0      ;
  jnz  for
  pop  eax
  dec  ebx
  mov  ecx,0
for2: 
  pop  eax
  mov  str[ecx], al
  inc  ecx
  dec  ebx       ;
  cmp  ebx, 0      ;
  jnz  for2
 }
 std::cout << str << std::endl;
}

Read Full Post »

組語模擬 strlen 函數

雖然今天對於工作上有點不太愉快的事情發生,不過還是不會影響我最近研究組語的熱情,今天寫了一個模擬計算字串長度的函數,如下:
 
#include <string>
#include <iostream>
 
int strlen2(const char* pstr){ 
  __asm{ 
  mov ebx, 0               ; iterator
for: 
  mov edx, pstr;
  mov al, [edx][ebx]     ;
  inc ebx                     ;
  cmp al, 0                  ;
  jnz for
  mov eax, ebx            ;

  }
}
void main(void){
  const char str[] = "Hello Arick";
  std::string hello(str);
  const char* pstr = str;
  std::cout << strlen( hello.c_str() ) << ","
    << strlen2( hello.c_str() )
    << std::endl;
  std::cout << strlen( str ) << ","
    << strlen2( str )
    << std::endl;
  std::cout << strlen( str ) << ","
    << strlen2( pstr )
    << std::endl;
}
 
 

Read Full Post »