Eine Technologie, mit der Sie Assemblersprachen in Ihrem Browser ausführen können. Es wird verwendet, um etwas zu beschleunigen oder zu tun, was das JavaScript-Verarbeitungssystem nicht kann.
Im Juni 2015 haben Mozilla, Google, Microsoft und Apple vereinbart, es als Standardformat zu entwickeln.
Unterstützte Sprachen sind C / C ++, Rust usw. In letzter Zeit kann Golang auch verwendet werden.
Wird derzeit von den meisten anderen Browsern als IE unterstützt.
Schauen wir uns als Beispiel ein in C ++ in der Assemblersprache geschriebenes Hello World-Programm an.
hello.cpp
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << endl;
return 0;
}
Sie können die Assemblersprache anzeigen, indem Sie die Option S zu g ++ hinzufügen.
$ g++ -S hello.cpp
Generiert eine Assembler-Datei namens hello.s.
Da die Datei mehr als 1000 Zeilen enthält, werde ich hier nur die ersten 15 Zeilen einfügen.
.section __TEXT,__text,regular,pure_instructions
.macosx_version_min 10, 13
.globl _main ## -- Begin function main
.p2align 4, 0x90
_main: ## @main
.cfi_startproc
## %bb.0:
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
subq $32, %rsp
movq __ZNSt3__14coutE@GOTPCREL(%rip), %rdi
leaq L_.str(%rip), %rsi
Hier ist das Hauptproblem.
Vorstellung der beliebtesten Emscripten.
git clone https://github.com/juj/emsdk.git
cd emsdk
#Installieren Sie die neuesten SDK-Tools
./emsdk install latest
#aktivieren Sie
./emsdk activate latest
#Legen Sie Pfad- und Umgebungsvariablen fest
source ./emsdk_env.sh
Es braucht viel Zeit, also trinke ich Tee.
Nachdem Sie eine Build-Umgebung haben, kompilieren Sie sie und führen Sie sie aus.
hello.c
#include <stdio.h>
int main() {
printf("Hello World!\n");
return 0;
}
$ emcc -0 hello.js -O0 hello.c
$ node hello.js
Hello World!
$ emcc -o index.html hello.c
#Richten Sie einen lokalen Server ein
## Python3.x-Serie
$ python -m http.server
Serving HTTP on 0.0.0.0 port 8000 ...
## Python2.x-Serie
$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...
Wenn Sie auf http: // localhost: 8000 / zugreifen,
Hallo Welt! Wird richtig angezeigt.
Diesmal habe ich Hello World mit Web Assembly ausprobiert.
Wenn Sie Lust dazu haben, versuchen Sie es mit einer komplizierteren arithmetischen Verarbeitung.
das ist alles!
Recommended Posts