专家,我不知道intel x86 machineCode/assemblyCode转换是singleSide还是BothSide?
意思是:assemblyCode ---> machineCode和machineCode ---> assemblyCode都可用.
由于x86 machineCode的大小不同(1-15字节),并且操作码在(1-3字节)中变化,如何确定一个操作码是1byte还是2byte还是3byte?
我从来没有找到x86指令前缀的例子,如果这里是1byte前缀,如何确定它是前缀还是操作码?
当然,assemblyCode ---> machineCode,助记符+ oprand [w/b]的标识可以通过maping某些MappingTable来确定响应machineCode是什么.
但是,当过程逆转时:
{bbbbbbbb,bbbbbbbb,bbbbbbbb,// instruction1 bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,// instruction2 bbbbbbbb,bbbbbbbb // instruction3}
----> {bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb,bbbbbbbb}
我不知道确定一条指令的长度(大小)的重要位或字节.
任何人都会告诉我如何确定?(操作码的大小,前缀示例.)感谢您的帮助.
1.main_thread 和 work_thread 不共享任何东西(不共享任何东西)
2.在main_thread中将domFragment构建成某种级别的结构(基于数据)有点费时,可以为worker_thread划分作业。
但是,我找不到将 DocumentFragment 传入 work_thread 的方法
postMessage(fragment) // no way
postMessage({f:fragment}) // no way ,same reason above(serialization)
postMessage(fragment,[fragment]) // no way, type checking , must be a buffer type...
Run Code Online (Sandbox Code Playgroud)
也许这种优化不值得付出努力?任何意见?