menu

秋梦无痕

一场秋雨无梦痕,春夜清风冻煞人。冬来冷水寒似铁,夏至京北蟑满城。

Avatar

用汇编写网页

这个变态变态的……

from: viksoe@worldonline.dk

居然还支持这么多指令:

NOP, MOV, LEA, CMP, TEST, ADD, SUB, XOR, NOT, NEG, INC, DEC, OR, AND, IMUL, IDIV, MUL, DIV, SAL, SHL, SAR, SHR, CBW, CWDE, CWD, CDQ, CLD, STD, CMC, STC, CLC, PUSH, POP, JMP, CALL, JE, JZ, JNE, JNZ, JS, JNS, JB, JNAE, JAE, JNB, JBE, JNA, JA, JNBE, JL, JNGE, JGE, JNL, JLE, JNG, JG, JNL, JC, JNC, JCXZ, JECXZ

目前还存在的问题:

Not all operand constructs are supported. Instructions, which are available in multiple forms (such as IMUL) only support 1 form. Registers AL, AX and EAX types are supported - but AH and its friends are currently not. There is no support for segments qualifiers, special 80386+ registers or any of the fancy prefix types (REP or LOCK). Since segment registers are not supported, a flat memory model is used. The addressing form [BX + SI] is not supported. The stack space is limited to 200 DWORD entries. Use $ to denote hexadecimal. ASP.NET debugging is awkward, but works. The CALL instruction can handle CLS calls using quouted strings, but ordinary sub routines are not supported (there is no RET support). Plenty more limitations may apply.

想试试?当然先要下载ASM script compiler了,然后么:

·Edit the install.cmd file so the paths match your system. Then execute it.
·Edit your machine.config file and add the following line to the <compilers> XML node.
<compiler language="asm80386" extension=".asm" type="Viksoe.ASMIL.AsmScriptCodeProvider, Viksoe.ASMIL" />

好了,变态们可以用汇编写网页了。哈哈,Here we go~~

<%@ page language="Asm80386" %>
<%
Str: DB "Testing...", 0

mov eax, -2
cmp eax, 2
jle Label1
xor eax, eax
Label1:
lea esi, Str
push esi
call "Response.Write(string)"
pop esi
%>
<br>EAX: <%= eax %>

评论已关闭