亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dsasm_functions.cpp

?? C語言編寫的反匯編工具
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
                            else
                            { // Extension==0
                                SwapWord((BYTE*)(*Opcode+pos+1),&wOp,&wMem);
                                FOpcode=wOp&0x00FF;
                                wsprintf(temp,"%02X",FOpcode);
                                lstrcat((*Disasm)->Opcode,temp);
                            }
						}
						strcpy(Aritmathic,"");
						
                        if(Op==0x82 || Op==0x83)
							if(FOpcode>0x7F) // check for signed numbers
							{
								wsprintf(Aritmathic,"%s",Scale[0]); // '-' Signed Numbers
								FOpcode = 0x100-FOpcode; // -XX (Negative the Number)
							}
							
							// Check Opcode
							if(Op==0xC6)
							{
							/* 
							Instruction rule: Mem,Imm ->  1100011woo000mmm,imm
							Code Block: 1100011
							w = Reg Size
							oo - Mod
							000 - Must be!
							mmm - Reg/Mem
							imm - Immidiant (麼弳)
								*/
								// Check valid Opcode, must have 000 bit
								if(reg1!=0)
									lstrcat( (*Disasm)->Remarks,"Invalid Instruction!");
								
								// Instruction
								wsprintf(instruction,"%s","mov");
							}
							else
								wsprintf(instruction,"%s",Instructions[REG]);
							
							wsprintf(temp,"%s %s,%s%02X",instruction,tempMeme,Aritmathic,FOpcode);
							
							(*(*index))++;
							(*Disasm)->OpcodeSize++;
					}
					break;
					
				case 0x8C: // Segments in Source Register
                    {
                        wsprintf(temp,"%s %s,%s",instruction,tempMeme,segs[REG]);
                    }
                    break;
					
				case 0xD0: case 0xD1:
                    {
                        wsprintf(temp,"%s %s,1",ArtimaticInstructions[REG],tempMeme);
                    }
                    break;
					
				case 0xD2: case 0xD3:
                    {
                        wsprintf(temp,"%s %s,cl",ArtimaticInstructions[REG],tempMeme);
                    }
                    break;
					
				case 0xD8: case 0xDC:// Unsigned FPU Instructions (unsigned)
                    {
                        wsprintf(temp,"%s %s",FpuInstructions[REG],tempMeme);
                    }
                    break;
					
				case 0xD9: // FPU Instructions Set2 (UnSigned)
                    {
                        if(REG==0 && reg1!=0) // (11011001oo[000]mmm) must have 00 else invalid! fld instruction only
                            lstrcat((*Disasm)->Remarks,"Invalid Instruction");
                        else {
                            if(REG==1) // no such fpu instruction!
                                lstrcat((*Disasm)->Remarks,"Invalid Instruction");
                        }
                        
                        wsprintf(temp,"%s %s",FpuInstructionsSet2[REG],tempMeme);
                    }
                    break;
					
				case 0xDA: case 0xDE:// FPU Instructions (Signed)
                    {
                        wsprintf(temp,"%s %s",FpuInstructionsSigned[REG],tempMeme);
                    }
                    break;
					
				case 0xDB: // FPU Instructions Set2 (Signed)
                    {
						if(REG==1 || REG==4 || REG==6) // No such fpu instructions!
							lstrcat((*Disasm)->Remarks,"Invalid Instruction");
						
						wsprintf(temp,"%s %s",FpuInstructionsSet2Signed[REG],tempMeme);
                    }
                    break;
					
				case 0xDD:// FPU Instructions Set2 (Signed)
                    {
						if(REG==1 ||  REG==5) // no such fpu instruction!
							lstrcat((*Disasm)->Remarks,"Invalid Instruction");
						
						wsprintf(temp,"%s %s",FpuInstructionsSet3[REG],tempMeme);
                    }
                    break;
					
				case 0xDF: // Extended FPU Instructions Set2 (Signed)
                    {
						if(REG==1) // no such fpu instruction!
							lstrcat((*Disasm)->Remarks,"Invalid Instruction");
						
						wsprintf(temp,"%s %s",FpuInstructionsSet2Signed_EX[REG],tempMeme);
                    }
                    break;
                    
				case 0xF6:
                    {
                        // We check Extension because there is a diff
						// Reading position of bytes depend on the extension
						// 1 = read byte, 3rd position
						// 2 = read dword, 6th position
						
                        if(Extension==1) // read 1 byte at 3rd position
                        {
                            SwapWord((BYTE*)(*Opcode+pos+2),&wOp,&wMem);
                            FOpcode=wOp&0x00FF;
                            wsprintf(temp,"%02X",FOpcode);
                            lstrcat((*Disasm)->Opcode,temp);
                        }
                        else{ 
                            if(Extension==2) //read byte at 7th position (dword read before)
                            {                            
                                SwapWord((BYTE*)(*Opcode+pos+4),&wOp,&wMem);
                                FOpcode=wOp&0x00FF;
                                wsprintf(temp,"%02X",FOpcode);
                                lstrcat((*Disasm)->Opcode,temp);
                            }
                            else
                            { // Extension==0
                                SwapWord((BYTE*)(*Opcode+pos+1),&wOp,&wMem);
                                FOpcode=wOp&0x00FF;
                                wsprintf(temp,"%02X",FOpcode);
                                lstrcat((*Disasm)->Opcode,temp);
                            }
                        }
						
						strcpy(Aritmathic,"");
						wsprintf(instruction,"%s",InstructionsSet2[REG]);
                        
                        if(reg1==0 || reg1==1)
                        {                        
							wsprintf(temp,"%s %s,%s%02X",instruction,tempMeme,Aritmathic,FOpcode);
							(*(*index))++;
							(*Disasm)->OpcodeSize++;
                        }
                        else
                            wsprintf(temp,"%s %s",instruction,tempMeme);
                    }
                    break;
					
				case 0xF7:
                    {
                        // get instruction
                        wsprintf(instruction,"%s",InstructionsSet2[REG]);
                        
                        // Get Extensions!
                        //================    
                        if(reg1==0 || reg1==1)
                        {                        
                            if(Extension==0)
                            {
                                if(PrefixReg==0)
                                {   
                                    SwapDword((BYTE*)(*Opcode+pos+2),&dwOp,&dwMem);
                                    wsprintf(temp," %08X",dwOp);                                    
                                    lstrcat((*Disasm)->Opcode,temp);                                    
                                    wsprintf(temp,"%08X",dwMem);
                                }
                                else
                                {
                                    SwapWord((BYTE*)(*Opcode+pos+2),&wOp,&wMem);
                                    wsprintf(temp," %04X",wOp);                                    
                                    lstrcat((*Disasm)->Opcode,temp);
                                    wsprintf(temp,"%04X",wMem);
                                }
                            }
                            else if(Extension==1)
                            {
                                if(PrefixReg==0)
                                {                                
                                    SwapDword((BYTE*)(*Opcode+pos+3),&dwOp,&dwMem);
                                    wsprintf(temp," %08X",dwOp);                                    
                                    lstrcat((*Disasm)->Opcode,temp);                                    
                                    wsprintf(temp,"%08X",dwMem);
                                    
                                }
                                else
                                {
                                    SwapWord((BYTE*)(*Opcode+pos+3),&wOp,&wMem);
                                    wsprintf(temp," %04X",wOp);                                    
                                    lstrcat((*Disasm)->Opcode,temp);
                                    wsprintf(temp,"%04X",wMem);
                                }
                            }
                            else if(Extension==2)
                            {         
                                if(PrefixReg==0)
                                {   
                                    SwapDword((BYTE*)(*Opcode+pos+4),&dwOp,&dwMem);
                                    wsprintf(temp," %08X",dwOp);                                    
                                    lstrcat((*Disasm)->Opcode,temp);                                    
                                    wsprintf(temp,"%08X",dwMem);
                                }
                                else
                                {
                                    SwapWord((BYTE*)(*Opcode+pos+4),&wOp,&wMem);
                                    wsprintf(temp," %04X",wOp);                                    
                                    lstrcat((*Disasm)->Opcode,temp);
                                    wsprintf(temp,"%04X",wMem);
                                }
                            }
                            wsprintf(menemonic,"%s %s,%s",instruction,tempMeme,temp);                            
                            (*(*index))+=4;
                            (*Disasm)->OpcodeSize+=4;
                        }
                        else
                            wsprintf(menemonic,"%s %s",instruction,tempMeme);
						
                        strcpy(temp,menemonic);
                    }
                    break;
					
				case 0xFE: // MIX Instructions (INC,DEC,INVALID,INVALID,INVALID...)
                    {                                                
						wsprintf(temp,"%s %s",InstructionsSet3[REG],tempMeme);
						
						if(REG>1) // Invalid instructions
							lstrcat((*Disasm)->Remarks,"Invalid Instruction");
                    }
                    break;
					
				case 0xFF: // MIX Instructions (INC,DEC,CALL,PUSH,JMP,FAR JMP,FAR CALL,INVALID)
                    {
						wsprintf(temp,"%s %s",InstructionsSet4[REG],tempMeme);
						
						if(REG==3)// FAR CALL
						{
							lstrcat((*Disasm)->Remarks,"Far Call");
							break;
						}
						
						if(REG==5) // FAR JUMP
						{
							lstrcat((*Disasm)->Remarks,"Far Jump");
							break;
						}
						
						if(REG==7) // Invalid instructions
							lstrcat((*Disasm)->Remarks,"Invalid Instruction");
                    }
                    break;
					
				default:
					{       
						wsprintf(temp,"%s %s,%s",instruction,tempMeme,regs[RM][REG]);                            
					}
					break;
				}
				
				lstrcat((*Disasm)->Assembly,temp);
				/*
				wsprintf(menemonic,"%s %s,%s",instruction,tempMeme,regs[RM][REG]);
				lstrcat((*Disasm)->Assembly,menemonic);
				*/
			}
			break;
			
			case 1: // (<-) Direction (Bit_D)
				{
					// Check Used Opcode Set
					switch(Op)
					{
                    case 0x8E:// Segments in Destination Register
						{
							wsprintf(menemonic,"%s %s,%s",instruction,segs[REG],tempMeme);
						}
						break;
						
						// Mixed Bit Rotation Instructions (rol/ror/shl..)
                    case 0xC0: case 0xC1:
						{
							// Check Extension
							switch(Extension)
							{
                            case 0: // No Extension
								{
									SwapWord((BYTE*)(*Opcode+pos+1),&wOp,&wMem);
									FOpcode=wOp&0x00FF;
									wsprintf(menemonic,"%s %s,%02X",ArtimaticInstructions[REG],tempMeme,FOpcode);                                
									wsprintf(tempMeme," %02X",FOpcode);
									lstrcat((*Disasm)->Opcode,tempMeme);
									(*(*index))++;
									(*Disasm)->OpcodeSize++;
								}
								break;
								
                            case 1: // 1 byte Extension (Displacement)
								{
									SwapWord((BYTE*)(*Opcode+pos+2),&wOp,&wMem);
									FOpcode=wOp&0x00FF;
									wsprintf(menemonic,"%s %s,%02X",ArtimaticInstructions[REG],tempMeme,FOpcode);                                
									wsprintf(tempMeme," %02X",FOpcode);
									lstrcat((*Disasm)->Opcode,tempMeme);
									(*(*index))++;
									(*Disasm)->OpcodeSize++;
								}
								break;
								
                            case 2: // 2 Bytes Extension (Displacement)
								{
									SwapWord((BYTE*)(*Opcode+pos+3),&wOp,&wMem);
									FOpcode=wOp&0x00FF;
									wsprintf(menemonic,"%s %s,%02X",ArtimaticInstructions[REG],tempMeme,FOpcode);                                
									wsprintf(tempMeme," %02X",FOpcode);
									lstrcat((*Disasm)->Opcode,tempMeme);
									(*(*index))++;
									(*Disasm)->OpcodeSize++;
								}
								break;
							}                        
						}
						break;
						
						// POP DWORD PTR[REG/MEM/DISP]
                    case 0x8F:
						{
							wsprintf(menemonic,"%s 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费版在线| 欧美午夜理伦三级在线观看| 视频一区欧美精品| 亚洲综合色视频| 五月天一区二区三区| 一区二区三区日韩欧美精品| 椎名由奈av一区二区三区| 欧美经典一区二区三区| 国产精品久久久99| 亚洲男人天堂一区| 亚洲成人资源网| 日本三级亚洲精品| 看片的网站亚洲| 国产成人午夜视频| 91亚洲精品久久久蜜桃网站| 色爱区综合激月婷婷| 欧美日韩一二三| 精品欧美一区二区三区精品久久| 日韩欧美不卡在线观看视频| 久久久久久**毛片大全| 综合激情成人伊人| 日本不卡免费在线视频| 国产美女视频91| 一本一道久久a久久精品| 欧美日韩大陆一区二区| 精品99久久久久久| 亚洲品质自拍视频| 麻豆精品久久久| 99久久久久久| 日韩精品一区二区三区四区| 日本一区二区成人在线| 无码av免费一区二区三区试看| 精品一区二区免费看| 色中色一区二区| 欧美va亚洲va国产综合| 成人欧美一区二区三区视频网页| 日韩**一区毛片| 波多野结衣在线aⅴ中文字幕不卡| 欧美日韩国产精选| 日韩一区在线播放| 精品一区二区三区在线视频| 欧美在线一区二区三区| 久久精品一区四区| 日韩va亚洲va欧美va久久| 成人免费高清在线| 欧美刺激午夜性久久久久久久| 国产精品伦理一区二区| 麻豆精品视频在线观看免费| 在线亚洲欧美专区二区| 国产精品久久久久久久久果冻传媒| 日产国产高清一区二区三区| 一本到三区不卡视频| 国产欧美日韩在线| 精一区二区三区| 欧美二区三区91| 亚洲一区在线免费观看| 99国产精品国产精品毛片| 久久九九99视频| 狠狠色综合播放一区二区| 91精品国产综合久久精品| 亚洲一卡二卡三卡四卡| 不卡的av网站| 亚洲视频小说图片| 成人a区在线观看| 国产精品免费丝袜| 成人午夜视频在线观看| 久久精品人人做人人爽人人| 狠狠色丁香婷婷综合| 日韩一区二区三区在线视频| 日本中文字幕一区二区视频 | 国产精品一区不卡| 欧美一区二区三区免费观看视频 | 5566中文字幕一区二区电影| 综合婷婷亚洲小说| 91丨porny丨中文| 亚洲卡通动漫在线| 在线影视一区二区三区| 亚洲综合在线视频| 宅男在线国产精品| 久久成人18免费观看| 精品sm在线观看| 成人av第一页| 亚洲欧美激情插 | 亚洲精品在线三区| 国产乱妇无码大片在线观看| 久久久精品综合| 91在线丨porny丨国产| 一区二区日韩电影| 欧美一区二区视频免费观看| 免费看日韩a级影片| 国产午夜精品一区二区| 97久久超碰国产精品| 亚洲一区视频在线观看视频| 欧美精品v国产精品v日韩精品| 免费在线观看不卡| 国产日韩欧美不卡在线| 色诱视频网站一区| 免费观看成人av| 国产女主播视频一区二区| 99久久精品免费看国产| 日韩国产欧美在线播放| 久久久电影一区二区三区| 93久久精品日日躁夜夜躁欧美| 视频一区二区中文字幕| 久久久不卡网国产精品一区| 色94色欧美sute亚洲线路一ni| 日韩精品一卡二卡三卡四卡无卡| 久久久久综合网| 欧美日韩精品欧美日韩精品| 国产精品99久久久久| 亚洲r级在线视频| 国产欧美日本一区视频| 欧美人xxxx| 成人午夜在线视频| 久久综合综合久久综合| 亚洲欧美激情插 | 亚洲国产综合在线| 欧美成人性战久久| 欧美性猛片aaaaaaa做受| 国产伦精品一区二区三区免费迷 | 一区二区三区在线视频观看58| 欧美肥妇毛茸茸| 色狠狠综合天天综合综合| 国产麻豆午夜三级精品| 石原莉奈在线亚洲三区| 亚洲免费资源在线播放| 久久精品人人做| 精品奇米国产一区二区三区| 欧美日韩一区视频| 91麻豆国产自产在线观看| 粉嫩av亚洲一区二区图片| 另类调教123区| 日本成人超碰在线观看| 亚洲高清在线精品| 亚洲精品视频在线看| 国产欧美日韩麻豆91| 久久免费电影网| 欧美xxx久久| 欧美丰满高潮xxxx喷水动漫| 欧美性大战xxxxx久久久| 色悠久久久久综合欧美99| 不卡一区二区三区四区| 高清国产一区二区| 粉嫩13p一区二区三区| 国产a久久麻豆| 国产a精品视频| 99久久夜色精品国产网站| jizz一区二区| 99精品一区二区三区| 本田岬高潮一区二区三区| 成人午夜伦理影院| yourporn久久国产精品| eeuss鲁片一区二区三区在线看| 国产suv精品一区二区三区| 国产一区二区免费在线| 国产91综合网| 国产精品白丝jk白祙喷水网站| 国产不卡免费视频| av电影天堂一区二区在线观看| 99re视频这里只有精品| 欧美自拍偷拍一区| 欧美精品日韩一本| 精品日韩成人av| 国产精品青草久久| 亚洲免费资源在线播放| 亚洲国产日产av| 蜜臀av一级做a爰片久久| 久久91精品国产91久久小草| 国产成人精品三级麻豆| 色哟哟一区二区| 7777精品伊人久久久大香线蕉 | 欧美色电影在线| 欧美一区欧美二区| 国产清纯在线一区二区www| 国产精品美女久久久久av爽李琼 | 日韩你懂的在线播放| 精品国产第一区二区三区观看体验 | 国产精品久久久爽爽爽麻豆色哟哟| 91精品免费观看| 久久综合国产精品| 亚洲猫色日本管| 全国精品久久少妇| 不卡的av中国片| 在线播放中文一区| 国产欧美日韩不卡免费| 亚洲二区在线视频| 国产一区二区三区视频在线播放| 97se亚洲国产综合在线| 日韩精品一区二区在线| 亚洲欧洲av色图| 蜜臀a∨国产成人精品| 99国产欧美另类久久久精品 | 美腿丝袜亚洲一区| 91在线云播放| 久久蜜臀精品av| 三级成人在线视频| 色老综合老女人久久久| 国产亚洲1区2区3区| 亚洲mv在线观看| 91麻豆swag|