Rev 31 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 31 | Rev 109 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ; flat assembler core |
1 | ; flat assembler core |
2 | ; Copyright (c) 1999-2005, Tomasz Grysztar. |
2 | ; Copyright (c) 1999-2006, Tomasz Grysztar. |
3 | ; All rights reserved. |
3 | ; All rights reserved. |
Line 4... | Line 4... | ||
4 | 4 | ||
5 | simple_instruction_except64: |
5 | simple_instruction_except64: |
6 | cmp [code_type],64 |
6 | cmp [code_type],64 |
Line 681... | Line 681... | ||
681 | cmp [code_type],64 |
681 | cmp [code_type],64 |
682 | je mov_reg_xrx_64bit |
682 | je mov_reg_xrx_64bit |
683 | cmp [operand_size],4 |
683 | cmp [operand_size],4 |
684 | jne invalid_operand_size |
684 | jne invalid_operand_size |
685 | call store_nomem_instruction |
685 | cmp [postbyte_register],8 |
- | 686 | jne mov_reg_xrx_store |
|
- | 687 | cmp [extended_code],20h |
|
- | 688 | jne mov_reg_xrx_store |
|
- | 689 | mov al,0F0h |
|
- | 690 | stos byte [edi] |
|
- | 691 | mov [postbyte_register],0 |
|
- | 692 | mov_reg_xrx_store: |
|
- | 693 | call store_nomem_instruction |
|
686 | jmp instruction_assembled |
694 | jmp instruction_assembled |
687 | mov_reg_xrx_64bit: |
695 | mov_reg_xrx_64bit: |
688 | cmp [operand_size],8 |
696 | cmp [operand_size],8 |
689 | jne invalid_operand_size |
697 | jne invalid_operand_size |
690 | call store_nomem_instruction |
698 | call store_nomem_instruction |
Line 760... | Line 768... | ||
760 | mov [base_code],0A1h |
768 | mov [base_code],0A1h |
761 | jmp store_mov_address32 |
769 | jmp store_mov_address32 |
762 | mov_ax_mem_address16: |
770 | mov_ax_mem_address16: |
763 | call store_segment_prefix_if_necessary |
771 | call store_segment_prefix_if_necessary |
764 | mov [base_code],0A1h |
772 | call address_16bit_prefix |
- | 773 | mov [base_code],0A1h |
|
765 | jmp store_mov_address16 |
774 | jmp store_mov_address16 |
766 | mov_ax_mem_address64: |
775 | mov_ax_mem_address64: |
767 | call store_segment_prefix_if_necessary |
776 | call store_segment_prefix_if_necessary |
768 | mov [base_code],0A1h |
777 | mov [base_code],0A1h |
769 | jmp store_mov_address64 |
778 | jmp store_mov_address64 |
Line 856... | Line 865... | ||
856 | stos dword [edi] |
865 | stos dword [edi] |
857 | jmp instruction_assembled |
866 | jmp instruction_assembled |
858 | mov_sreg: |
867 | mov_sreg: |
859 | mov ah,al |
868 | mov ah,al |
860 | and al,111b |
869 | and al,1111b |
861 | mov [postbyte_register],al |
870 | mov [postbyte_register],al |
862 | shr ah,4 |
871 | shr ah,4 |
863 | cmp ah,5 |
872 | cmp ah,5 |
864 | je mov_creg |
873 | je mov_creg |
865 | cmp ah,7 |
874 | cmp ah,7 |
866 | je mov_dreg |
875 | je mov_dreg |
Line 924... | Line 933... | ||
924 | cmp [code_type],64 |
933 | cmp [code_type],64 |
925 | je mov_xrx_64bit |
934 | je mov_xrx_64bit |
926 | cmp ah,4 |
935 | cmp ah,4 |
927 | jne invalid_operand_size |
936 | jne invalid_operand_size |
928 | call store_nomem_instruction |
937 | cmp [postbyte_register],8 |
- | 938 | jne mov_xrx_store |
|
- | 939 | cmp [extended_code],22h |
|
- | 940 | jne mov_xrx_store |
|
- | 941 | mov al,0F0h |
|
- | 942 | stos byte [edi] |
|
- | 943 | mov [postbyte_register],0 |
|
- | 944 | mov_xrx_store: |
|
- | 945 | call store_nomem_instruction |
|
929 | jmp instruction_assembled |
946 | jmp instruction_assembled |
930 | mov_xrx_64bit: |
947 | mov_xrx_64bit: |
931 | cmp ah,8 |
948 | cmp ah,8 |
932 | jne invalid_operand_size |
949 | jne invalid_operand_size |
933 | call store_nomem_instruction |
950 | call store_nomem_instruction |
Line 1234... | Line 1251... | ||
1234 | xchg_reg_reg_8bit: |
1251 | xchg_reg_reg_8bit: |
1235 | call store_nomem_instruction |
1252 | call store_nomem_instruction |
1236 | jmp instruction_assembled |
1253 | jmp instruction_assembled |
1237 | push_instruction: |
1254 | push_instruction: |
1238 | mov [extended_code],al |
1255 | mov [push_size],al |
1239 | push_next: |
1256 | push_next: |
1240 | lods byte [esi] |
1257 | lods byte [esi] |
1241 | call get_size_operator |
1258 | call get_size_operator |
1242 | cmp al,10h |
1259 | cmp al,10h |
1243 | je push_reg |
1260 | je push_reg |
1244 | cmp al,'(' |
1261 | cmp al,'(' |
Line 1247... | Line 1264... | ||
1247 | jne invalid_operand |
1264 | jne invalid_operand |
1248 | push_mem: |
1265 | push_mem: |
1249 | call get_address |
1266 | call get_address |
1250 | mov al,[operand_size] |
1267 | mov al,[operand_size] |
1251 | mov ah,[extended_code] |
1268 | mov ah,[push_size] |
1252 | cmp al,2 |
1269 | cmp al,2 |
1253 | je push_mem_16bit |
1270 | je push_mem_16bit |
1254 | cmp al,4 |
1271 | cmp al,4 |
1255 | je push_mem_32bit |
1272 | je push_mem_32bit |
1256 | cmp al,8 |
1273 | cmp al,8 |
1257 | je push_mem_64bit |
1274 | je push_mem_64bit |
Line 1306... | Line 1323... | ||
1306 | push_reg_ok: |
1323 | push_reg_ok: |
1307 | add al,50h |
1324 | add al,50h |
1308 | mov [base_code],al |
1325 | mov [base_code],al |
1309 | mov al,ah |
1326 | mov al,ah |
1310 | mov ah,[extended_code] |
1327 | mov ah,[push_size] |
1311 | cmp al,2 |
1328 | cmp al,2 |
1312 | je push_reg_16bit |
1329 | je push_reg_16bit |
1313 | cmp al,4 |
1330 | cmp al,4 |
1314 | je push_reg_32bit |
1331 | je push_reg_32bit |
1315 | cmp al,8 |
1332 | cmp al,8 |
1316 | jne invalid_operand_size |
1333 | jne invalid_operand_size |
Line 1336... | Line 1353... | ||
1336 | jmp push_done |
1353 | jmp push_done |
1337 | push_sreg: |
1354 | push_sreg: |
1338 | mov bl,al |
1355 | mov bl,al |
1339 | mov dl,[operand_size] |
1356 | mov dl,[operand_size] |
1340 | mov dh,[extended_code] |
1357 | mov dh,[push_size] |
1341 | cmp dl,2 |
1358 | cmp dl,2 |
1342 | je push_sreg16 |
1359 | je push_sreg16 |
1343 | cmp dl,4 |
1360 | cmp dl,4 |
1344 | je push_sreg32 |
1361 | je push_sreg32 |
1345 | cmp dl,8 |
1362 | cmp dl,8 |
1346 | je push_sreg64 |
1363 | je push_sreg64 |
Line 1391... | Line 1408... | ||
1391 | mov [base_code],0Fh |
1408 | mov [base_code],0Fh |
1392 | jmp push_reg_store |
1409 | jmp push_reg_store |
1393 | push_imm: |
1410 | push_imm: |
1394 | mov al,[operand_size] |
1411 | mov al,[operand_size] |
1395 | mov ah,[extended_code] |
1412 | mov ah,[push_size] |
1396 | or al,al |
1413 | or al,al |
1397 | je push_imm_size_ok |
1414 | je push_imm_size_ok |
1398 | or ah,ah |
1415 | or ah,ah |
1399 | je push_imm_size_ok |
1416 | je push_imm_size_ok |
1400 | cmp al,ah |
1417 | cmp al,ah |
1401 | jne invalid_operand_size |
1418 | jne invalid_operand_size |
Line 1434... | Line 1451... | ||
1434 | cmp [code_type],64 |
1451 | cmp [code_type],64 |
1435 | je illegal_instruction |
1452 | je illegal_instruction |
1436 | call get_dword_value |
1453 | call get_dword_value |
1437 | mov edx,eax |
1454 | mov edx,eax |
1438 | cmp [value_type],0 |
1455 | call operand_32bit |
- | 1456 | cmp [value_type],0 |
|
1439 | jne push_imm_32bit_store |
1457 | jne push_imm_32bit_store |
1440 | cmp eax,-80h |
1458 | cmp eax,-80h |
1441 | jl push_imm_32bit_store |
1459 | jl push_imm_32bit_store |
1442 | cmp eax,80h |
1460 | cmp eax,80h |
1443 | jge push_imm_32bit_store |
1461 | jge push_imm_32bit_store |
1444 | call operand_32bit |
1462 | jmp push_imm_8bit |
1445 | jmp push_imm_8bit |
- | |
1446 | push_imm_optimized_16bit: |
1463 | push_imm_optimized_16bit: |
1447 | call get_word_value |
1464 | call get_word_value |
1448 | mov dx,ax |
1465 | mov dx,ax |
1449 | cmp [value_type],0 |
1466 | call operand_16bit |
- | 1467 | cmp [value_type],0 |
|
1450 | jne push_imm_16bit_store |
1468 | jne push_imm_16bit_store |
1451 | cmp ax,-80h |
1469 | cmp ax,-80h |
1452 | jl push_imm_16bit_store |
1470 | jl push_imm_16bit_store |
1453 | cmp ax,80h |
1471 | cmp ax,80h |
1454 | jge push_imm_16bit_store |
1472 | jge push_imm_16bit_store |
1455 | call operand_16bit |
1473 | push_imm_8bit: |
1456 | push_imm_8bit: |
- | |
1457 | mov ah,al |
1474 | mov ah,al |
1458 | mov al,6Ah |
1475 | mov [base_code],6Ah |
- | 1476 | call store_instruction_code |
|
- | 1477 | mov al,ah |
|
1459 | stos word [edi] |
1478 | stos byte [edi] |
1460 | jmp push_done |
1479 | jmp push_done |
1461 | push_imm_16bit: |
1480 | push_imm_16bit: |
1462 | call get_word_value |
1481 | call get_word_value |
1463 | mov dx,ax |
1482 | mov dx,ax |
1464 | call operand_16bit |
1483 | call operand_16bit |
1465 | push_imm_16bit_store: |
1484 | push_imm_16bit_store: |
Line 1499... | Line 1518... | ||
1499 | mov [operand_prefix],0 |
1518 | mov [operand_prefix],0 |
1500 | mov [rex_prefix],0 |
1519 | mov [rex_prefix],0 |
1501 | jmp push_next |
1520 | jmp push_next |
1502 | pop_instruction: |
1521 | pop_instruction: |
1503 | mov [extended_code],al |
1522 | mov [push_size],al |
1504 | pop_next: |
1523 | pop_next: |
1505 | lods byte [esi] |
1524 | lods byte [esi] |
1506 | call get_size_operator |
1525 | call get_size_operator |
1507 | cmp al,10h |
1526 | cmp al,10h |
1508 | je pop_reg |
1527 | je pop_reg |
1509 | cmp al,'[' |
1528 | cmp al,'[' |
1510 | jne invalid_operand |
1529 | jne invalid_operand |
1511 | pop_mem: |
1530 | pop_mem: |
1512 | call get_address |
1531 | call get_address |
1513 | mov al,[operand_size] |
1532 | mov al,[operand_size] |
1514 | mov ah,[extended_code] |
1533 | mov ah,[push_size] |
1515 | cmp al,2 |
1534 | cmp al,2 |
1516 | je pop_mem_16bit |
1535 | je pop_mem_16bit |
1517 | cmp al,4 |
1536 | cmp al,4 |
1518 | je pop_mem_32bit |
1537 | je pop_mem_32bit |
1519 | cmp al,8 |
1538 | cmp al,8 |
1520 | je pop_mem_64bit |
1539 | je pop_mem_64bit |
Line 1569... | Line 1588... | ||
1569 | pop_reg_ok: |
1588 | pop_reg_ok: |
1570 | add al,58h |
1589 | add al,58h |
1571 | mov [base_code],al |
1590 | mov [base_code],al |
1572 | mov al,ah |
1591 | mov al,ah |
1573 | mov ah,[extended_code] |
1592 | mov ah,[push_size] |
1574 | cmp al,2 |
1593 | cmp al,2 |
1575 | je pop_reg_16bit |
1594 | je pop_reg_16bit |
1576 | cmp al,4 |
1595 | cmp al,4 |
1577 | je pop_reg_32bit |
1596 | je pop_reg_32bit |
1578 | cmp al,8 |
1597 | cmp al,8 |
1579 | je pop_reg_64bit |
1598 | je pop_reg_64bit |
Line 1609... | Line 1628... | ||
1609 | mov [operand_prefix],0 |
1628 | mov [operand_prefix],0 |
1610 | mov [rex_prefix],0 |
1629 | mov [rex_prefix],0 |
1611 | jmp pop_next |
1630 | jmp pop_next |
1612 | pop_sreg: |
1631 | pop_sreg: |
1613 | mov bl,al |
1632 | mov dl,[operand_size] |
1614 | mov dl,[operand_size] |
- | |
1615 | mov dh,[extended_code] |
1633 | mov dh,[push_size] |
1616 | cmp dl,2 |
1634 | cmp al,62h |
- | 1635 | je pop_cs |
|
- | 1636 | mov bl,al |
|
- | 1637 | cmp dl,2 |
|
1617 | je pop_sreg16 |
1638 | je pop_sreg16 |
1618 | cmp dl,4 |
1639 | cmp dl,4 |
1619 | je pop_sreg32 |
1640 | je pop_sreg32 |
1620 | cmp dl,8 |
1641 | cmp dl,8 |
1621 | je pop_sreg64 |
1642 | je pop_sreg64 |
Line 1657... | Line 1678... | ||
1657 | mov [base_code],al |
1678 | mov [base_code],al |
1658 | cmp [code_type],64 |
1679 | cmp [code_type],64 |
1659 | je illegal_instruction |
1680 | je illegal_instruction |
1660 | jmp pop_reg_store |
1681 | jmp pop_reg_store |
1661 | pop_sreg_386: |
1682 | pop_cs: |
- | 1683 | cmp [code_type],16 |
|
- | 1684 | jne illegal_instruction |
|
- | 1685 | cmp dl,2 |
|
- | 1686 | je pop_cs_store |
|
- | 1687 | or dl,dl |
|
- | 1688 | jnz invalid_operand_size |
|
- | 1689 | cmp dh,2 |
|
- | 1690 | je pop_cs_store |
|
- | 1691 | or dh,dh |
|
- | 1692 | jnz illegal_instruction |
|
- | 1693 | pop_cs_store: |
|
- | 1694 | test dh,not 2 |
|
- | 1695 | jnz invalid_operand_size |
|
- | 1696 | mov al,0Fh |
|
- | 1697 | stos byte [edi] |
|
- | 1698 | jmp pop_done |
|
- | 1699 | pop_sreg_386: |
|
1662 | sub al,4 |
1700 | sub al,4 |
1663 | shl al,3 |
1701 | shl al,3 |
1664 | add al,0A1h |
1702 | add al,0A1h |
1665 | mov [extended_code],al |
1703 | mov [extended_code],al |
1666 | mov [base_code],0Fh |
1704 | mov [base_code],0Fh |
Line 1906... | Line 1944... | ||
1906 | jne ret_imm_ok |
1944 | jne ret_imm_ok |
1907 | cmp [value_type],0 |
1945 | cmp [value_type],0 |
1908 | jne invalid_use_of_symbol |
1946 | jne invalid_use_of_symbol |
1909 | ret_imm_ok: |
1947 | ret_imm_ok: |
1910 | mov dx,ax |
1948 | cmp [size_declared],0 |
- | 1949 | jne ret_imm_store |
|
- | 1950 | or ax,ax |
|
- | 1951 | jz simple_ret |
|
- | 1952 | ret_imm_store: |
|
- | 1953 | mov dx,ax |
|
1911 | call store_instruction_code |
1954 | call store_instruction_code |
1912 | mov ax,dx |
1955 | mov ax,dx |
1913 | stos word [edi] |
1956 | stos word [edi] |
1914 | jmp instruction_assembled |
1957 | jmp instruction_assembled |
1915 | simple_ret: |
1958 | simple_ret: |
Line 1934... | Line 1977... | ||
1934 | lods byte [esi] |
1977 | lods byte [esi] |
1935 | call get_size_operator |
1978 | call get_size_operator |
1936 | cmp al,'[' |
1979 | cmp al,'[' |
1937 | jne invalid_operand |
1980 | jne invalid_operand |
1938 | call get_address |
1981 | mov [size_override],-1 |
- | 1982 | call get_address |
|
1939 | pop eax |
1983 | pop eax |
1940 | call operand_autodetect |
1984 | mov [operand_size],al |
- | 1985 | call operand_autodetect |
|
1941 | call store_instruction |
1986 | call store_instruction |
1942 | jmp instruction_assembled |
1987 | jmp instruction_assembled |
1943 | ls_instruction: |
1988 | ls_instruction: |
1944 | or al,al |
1989 | or al,al |
1945 | jz les_instruction |
1990 | jz les_instruction |
Line 2274... | Line 2319... | ||
2274 | jne invalid_operand |
2319 | jne invalid_operand |
2275 | call get_address |
2320 | call get_address |
2276 | pop eax |
2321 | pop eax |
2277 | mov ah,[operand_size] |
2322 | mov ah,[operand_size] |
2278 | cmp ah,al |
2323 | or ah,ah |
- | 2324 | jz movx_unknown_size |
|
- | 2325 | cmp ah,al |
|
2279 | jae invalid_operand_size |
2326 | jae invalid_operand_size |
2280 | cmp ah,1 |
2327 | cmp ah,1 |
2281 | je movx_mem_8bit |
2328 | je movx_mem_8bit |
2282 | cmp ah,2 |
2329 | cmp ah,2 |
2283 | je movx_mem_16bit |
2330 | jne invalid_operand_size |
- | 2331 | movx_mem_16bit: |
|
2284 | or ah,ah |
2332 | inc [extended_code] |
- | 2333 | call operand_autodetect |
|
2285 | jnz invalid_operand_size |
2334 | call store_instruction |
- | 2335 | jmp instruction_assembled |
|
- | 2336 | movx_unknown_size: |
|
2286 | cmp [error_line],0 |
2337 | cmp [error_line],0 |
2287 | jne movx_mem_8bit |
2338 | jne movx_mem_8bit |
2288 | mov eax,[current_line] |
2339 | mov eax,[current_line] |
2289 | mov [error_line],eax |
2340 | mov [error_line],eax |
2290 | mov [error],operand_size_not_specified |
2341 | mov [error],operand_size_not_specified |
2291 | movx_mem_8bit: |
2342 | movx_mem_8bit: |
2292 | call operand_autodetect |
2343 | call operand_autodetect |
2293 | call store_instruction |
2344 | call store_instruction |
2294 | jmp instruction_assembled |
2345 | jmp instruction_assembled |
2295 | movx_mem_16bit: |
2346 | movx_reg: |
2296 | inc [extended_code] |
- | |
2297 | call operand_autodetect |
- | |
2298 | call store_instruction |
- | |
2299 | jmp instruction_assembled |
- | |
2300 | movx_reg: |
- | |
2301 | lods byte [esi] |
2347 | lods byte [esi] |
2302 | call convert_register |
2348 | call convert_register |
2303 | pop ebx |
2349 | pop ebx |
2304 | xchg bl,al |
2350 | xchg bl,al |
2305 | cmp ah,al |
2351 | cmp ah,al |
Line 2352... | Line 2398... | ||
2352 | lods byte [esi] |
2398 | lods byte [esi] |
2353 | call convert_register |
2399 | call convert_register |
2354 | cmp ah,4 |
2400 | cmp ah,4 |
2355 | jne invalid_operand_size |
2401 | jne invalid_operand_size |
2356 | call operand_64bit |
2402 | mov bl,al |
- | 2403 | call operand_64bit |
|
2357 | call store_nomem_instruction |
2404 | call store_nomem_instruction |
2358 | jmp instruction_assembled |
2405 | jmp instruction_assembled |
2359 | bt_instruction: |
2406 | bt_instruction: |
2360 | mov [postbyte_register],al |
2407 | mov [postbyte_register],al |
2361 | shl al,3 |
2408 | shl al,3 |
Line 2451... | Line 2498... | ||
2451 | jmp instruction_assembled |
2498 | jmp instruction_assembled |
2452 | bt_reg_imm: |
2499 | bt_reg_imm: |
2453 | xor al,al |
2500 | xor al,al |
2454 | xchg al,[operand_size] |
2501 | xchg al,[operand_size] |
2455 | push eax |
2502 | push eax ebx |
2456 | lods byte [esi] |
2503 | lods byte [esi] |
2457 | call get_size_operator |
2504 | call get_size_operator |
2458 | cmp al,'(' |
2505 | cmp al,'(' |
2459 | jne invalid_operand |
2506 | jne invalid_operand |
2460 | mov al,[operand_size] |
2507 | mov al,[operand_size] |
2461 | or al,al |
2508 | or al,al |
Line 2464... | Line 2511... | ||
2464 | jne invalid_operand_size |
2511 | jne invalid_operand_size |
2465 | bt_reg_imm_size_ok: |
2512 | bt_reg_imm_size_ok: |
2466 | call get_byte_value |
2513 | call get_byte_value |
2467 | mov byte [value],al |
2514 | mov byte [value],al |
2468 | pop eax |
2515 | pop ebx eax |
2469 | call operand_autodetect |
2516 | call operand_autodetect |
2470 | bt_reg_imm_store: |
2517 | bt_reg_imm_store: |
2471 | mov [extended_code],0BAh |
2518 | mov [extended_code],0BAh |
2472 | call store_nomem_instruction |
2519 | call store_nomem_instruction |
2473 | mov al,byte [value] |
2520 | mov al,byte [value] |
2474 | stos byte [edi] |
2521 | stos byte [edi] |
Line 2905... | Line 2952... | ||
2905 | mov al,dl |
2952 | mov al,dl |
2906 | stos byte [edi] |
2953 | stos byte [edi] |
2907 | jmp instruction_assembled |
2954 | jmp instruction_assembled |
2908 | 2955 | ||
Line 2909... | Line -... | ||
2909 | conditional_jump: |
- | |
2910 | mov [base_code],al |
- | |
2911 | lods byte [esi] |
- | |
2912 | call get_jump_operator |
- | |
2913 | cmp [jump_type],2 |
- | |
2914 | je invalid_operand |
- | |
2915 | call get_size_operator |
- | |
2916 | cmp al,'(' |
- | |
2917 | jne invalid_operand |
- | |
2918 | cmp byte [esi],'.' |
- | |
2919 | je invalid_value |
- | |
2920 | call get_relative_offset |
- | |
2921 | sub eax,2 |
- | |
2922 | jo jump_out_of_range |
- | |
2923 | cmp [next_pass_needed],0 |
- | |
2924 | jne conditional_jump_value_ok |
- | |
2925 | cmp [value_type],1 |
- | |
2926 | je invalid_use_of_symbol |
- | |
2927 | ja conditional_jump_32bit |
- | |
2928 | conditional_jump_value_ok: |
- | |
2929 | mov bl,[operand_size] |
- | |
2930 | cmp bl,1 |
- | |
2931 | je conditional_jump_8bit |
- | |
2932 | cmp bl,2 |
- | |
2933 | je conditional_jump_16bit |
- | |
2934 | cmp bl,4 |
- | |
2935 | je conditional_jump_32bit |
- | |
2936 | or bl,bl |
- | |
2937 | jnz invalid_operand_size |
- | |
2938 | cmp eax,80h |
- | |
2939 | jb conditional_jump_8bit |
- | |
2940 | cmp eax,-80h |
- | |
2941 | jae conditional_jump_8bit |
- | |
2942 | cmp [code_type],16 |
- | |
2943 | je conditional_jump_16bit |
- | |
2944 | conditional_jump_32bit: |
- | |
2945 | sub eax,2 |
- | |
2946 | jo jump_out_of_range |
- | |
2947 | mov edx,eax |
- | |
2948 | mov ecx,edi |
- | |
2949 | call operand_32bit |
- | |
2950 | mov al,[base_code] |
- | |
2951 | add al,10h |
- | |
2952 | mov [extended_code],al |
- | |
2953 | mov [base_code],0Fh |
- | |
2954 | call store_instruction_code |
- | |
2955 | mov eax,edi |
- | |
2956 | sub eax,ecx |
- | |
2957 | sub edx,eax |
- | |
2958 | jo jump_out_of_range |
- | |
2959 | mov eax,edx |
- | |
2960 | call mark_relocation |
- | |
2961 | stos dword [edi] |
- | |
2962 | jmp instruction_assembled |
- | |
2963 | conditional_jump_16bit: |
- | |
2964 | mov edx,eax |
- | |
2965 | mov ecx,edi |
- | |
2966 | call operand_16bit |
- | |
2967 | mov al,[base_code] |
- | |
2968 | add al,10h |
- | |
2969 | mov [extended_code],al |
- | |
2970 | mov [base_code],0Fh |
- | |
2971 | call store_instruction_code |
- | |
2972 | mov eax,edi |
- | |
2973 | sub eax,ecx |
- | |
2974 | sub edx,eax |
- | |
2975 | jo jump_out_of_range |
- | |
2976 | mov eax,edx |
- | |
2977 | stos word [edi] |
- | |
2978 | cmp eax,10000h |
- | |
2979 | jge jump_out_of_range |
- | |
2980 | cmp eax,-10000h |
- | |
2981 | jl jump_out_of_range |
- | |
2982 | jmp instruction_assembled |
- | |
2983 | conditional_jump_8bit: |
- | |
2984 | mov edx,eax |
- | |
2985 | mov ah,al |
- | |
2986 | mov al,[base_code] |
- | |
2987 | stos word [edi] |
- | |
2988 | cmp edx,80h |
- | |
2989 | jge jump_out_of_range |
- | |
2990 | cmp edx,-80h |
- | |
2991 | jl jump_out_of_range |
- | |
2992 | jmp instruction_assembled |
- | |
2993 | jump_out_of_range: |
- | |
2994 | cmp [error_line],0 |
- | |
2995 | jne instruction_assembled |
- | |
2996 | mov eax,[current_line] |
- | |
2997 | mov [error_line],eax |
- | |
2998 | mov [error],relative_jump_out_of_range |
- | |
2999 | jmp instruction_assembled |
- | |
3000 | loop_instruction_16bit: |
- | |
3001 | cmp [code_type],64 |
- | |
3002 | je illegal_instruction |
- | |
3003 | mov dl,al |
- | |
3004 | call address_16bit_prefix |
- | |
3005 | mov al,dl |
- | |
3006 | jmp loop_instruction |
- | |
3007 | loop_instruction_32bit: |
- | |
3008 | mov dl,al |
- | |
3009 | call address_32bit_prefix |
- | |
3010 | mov al,dl |
- | |
3011 | jmp loop_instruction |
- | |
3012 | loop_instruction_64bit: |
- | |
3013 | cmp [code_type],64 |
- | |
3014 | jne illegal_instruction |
- | |
3015 | loop_instruction: |
- | |
3016 | mov [base_code],al |
- | |
3017 | lods byte [esi] |
- | |
3018 | call get_jump_operator |
- | |
3019 | cmp [jump_type],2 |
- | |
3020 | je invalid_operand |
- | |
3021 | call get_size_operator |
- | |
3022 | cmp al,'(' |
- | |
3023 | jne invalid_operand |
- | |
3024 | cmp byte [esi],'.' |
- | |
3025 | je invalid_value |
- | |
3026 | call get_relative_offset |
- | |
3027 | cmp [next_pass_needed],0 |
- | |
3028 | jne loop_value_ok |
- | |
3029 | cmp [value_type],0 |
- | |
3030 | jne invalid_use_of_symbol |
- | |
3031 | loop_value_ok: |
- | |
3032 | mov bl,[operand_size] |
- | |
3033 | cmp bl,1 |
- | |
3034 | je loop_8bit |
- | |
3035 | or bl,bl |
- | |
3036 | jnz invalid_operand_size |
- | |
3037 | loop_8bit: |
- | |
3038 | sub eax,2 |
- | |
3039 | jo jump_out_of_range |
- | |
3040 | mov edx,eax |
- | |
3041 | mov al,[base_code] |
- | |
3042 | stos byte [edi] |
- | |
3043 | mov al,dl |
- | |
3044 | stos byte [edi] |
- | |
3045 | cmp edx,80h |
- | |
3046 | jge jump_out_of_range |
- | |
3047 | cmp edx,-80h |
- | |
3048 | jl jump_out_of_range |
- | |
3049 | jmp instruction_assembled |
- | |
3050 | call_instruction: |
2956 | call_instruction: |
3051 | mov [postbyte_register],10b |
2957 | mov [postbyte_register],10b |
3052 | mov [base_code],0E8h |
2958 | mov [base_code],0E8h |
3053 | mov [extended_code],9Ah |
2959 | mov [extended_code],9Ah |
3054 | jmp process_jmp |
2960 | jmp process_jmp |
Line 3067... | Line 2973... | ||
3067 | je jmp_reg |
2973 | je jmp_reg |
3068 | cmp al,'[' |
2974 | cmp al,'[' |
3069 | jne invalid_operand |
2975 | jne invalid_operand |
3070 | jmp_mem: |
2976 | jmp_mem: |
3071 | call get_address |
2977 | cmp [jump_type],1 |
- | 2978 | je illegal_instruction |
|
- | 2979 | call get_address |
|
3072 | mov edx,eax |
2980 | mov edx,eax |
3073 | mov al,[operand_size] |
2981 | mov al,[operand_size] |
3074 | or al,al |
2982 | or al,al |
3075 | jz jmp_mem_size_not_specified |
2983 | jz jmp_mem_size_not_specified |
3076 | cmp al,2 |
2984 | cmp al,2 |
Line 3084... | Line 2992... | ||
3084 | cmp al,10 |
2992 | cmp al,10 |
3085 | je jmp_mem_80bit |
2993 | je jmp_mem_80bit |
3086 | jmp invalid_operand_size |
2994 | jmp invalid_operand_size |
3087 | jmp_mem_size_not_specified: |
2995 | jmp_mem_size_not_specified: |
3088 | cmp [jump_type],2 |
2996 | cmp [jump_type],3 |
3089 | je jmp_mem_far |
2997 | je jmp_mem_far |
3090 | cmp [jump_type],1 |
2998 | cmp [jump_type],2 |
3091 | je jmp_mem_near |
2999 | je jmp_mem_near |
3092 | cmp [error_line],0 |
3000 | cmp [error_line],0 |
3093 | jne jmp_mem_near |
3001 | jne jmp_mem_near |
3094 | mov eax,[current_line] |
3002 | mov eax,[current_line] |
3095 | mov [error_line],eax |
3003 | mov [error_line],eax |
3096 | mov [error],operand_size_not_specified |
3004 | mov [error],operand_size_not_specified |
Line 3099... | Line 3007... | ||
3099 | je jmp_mem_16bit |
3007 | je jmp_mem_16bit |
3100 | cmp [code_type],32 |
3008 | cmp [code_type],32 |
3101 | je jmp_mem_near_32bit |
3009 | je jmp_mem_near_32bit |
3102 | jmp_mem_64bit: |
3010 | jmp_mem_64bit: |
3103 | cmp [jump_type],2 |
3011 | cmp [jump_type],3 |
3104 | je invalid_operand_size |
3012 | je invalid_operand_size |
3105 | cmp [code_type],64 |
3013 | cmp [code_type],64 |
3106 | jne illegal_instruction |
3014 | jne illegal_instruction |
3107 | call store_instruction |
3015 | call store_instruction |
3108 | jmp instruction_assembled |
3016 | jmp instruction_assembled |
3109 | jmp_mem_far: |
3017 | jmp_mem_far: |
Line 3111... | Line 3019... | ||
3111 | je jmp_mem_far_32bit |
3019 | je jmp_mem_far_32bit |
3112 | jmp_mem_48bit: |
3020 | jmp_mem_48bit: |
3113 | call operand_32bit |
3021 | call operand_32bit |
3114 | jmp_mem_far_store: |
3022 | jmp_mem_far_store: |
3115 | cmp [jump_type],1 |
3023 | cmp [jump_type],2 |
3116 | je invalid_operand_size |
3024 | je invalid_operand_size |
3117 | inc [postbyte_register] |
3025 | inc [postbyte_register] |
3118 | call store_instruction |
3026 | call store_instruction |
3119 | jmp instruction_assembled |
3027 | jmp instruction_assembled |
3120 | jmp_mem_80bit: |
3028 | jmp_mem_80bit: |
3121 | call operand_64bit |
3029 | call operand_64bit |
Line 3123... | Line 3031... | ||
3123 | jmp_mem_far_32bit: |
3031 | jmp_mem_far_32bit: |
3124 | call operand_16bit |
3032 | call operand_16bit |
3125 | jmp jmp_mem_far_store |
3033 | jmp jmp_mem_far_store |
3126 | jmp_mem_32bit: |
3034 | jmp_mem_32bit: |
3127 | cmp [jump_type],2 |
3035 | cmp [jump_type],3 |
3128 | je jmp_mem_far_32bit |
3036 | je jmp_mem_far_32bit |
3129 | cmp [jump_type],1 |
3037 | cmp [jump_type],2 |
3130 | je jmp_mem_near_32bit |
3038 | je jmp_mem_near_32bit |
3131 | cmp [code_type],16 |
3039 | cmp [code_type],16 |
3132 | je jmp_mem_far_32bit |
3040 | je jmp_mem_far_32bit |
3133 | jmp_mem_near_32bit: |
3041 | jmp_mem_near_32bit: |
3134 | cmp [code_type],64 |
3042 | cmp [code_type],64 |
3135 | je illegal_instruction |
3043 | je illegal_instruction |
3136 | call operand_32bit |
3044 | call operand_32bit |
3137 | call store_instruction |
3045 | call store_instruction |
3138 | jmp instruction_assembled |
3046 | jmp instruction_assembled |
3139 | jmp_mem_16bit: |
3047 | jmp_mem_16bit: |
3140 | cmp [jump_type],2 |
3048 | cmp [jump_type],3 |
3141 | je invalid_operand_size |
3049 | je invalid_operand_size |
3142 | call operand_16bit |
3050 | call operand_16bit |
3143 | call store_instruction |
3051 | call store_instruction |
3144 | jmp instruction_assembled |
3052 | jmp instruction_assembled |
3145 | jmp_reg: |
3053 | jmp_reg: |
3146 | cmp [jump_type],2 |
3054 | test [jump_type],1 |
3147 | je invalid_operand |
3055 | jnz invalid_operand |
3148 | lods byte [esi] |
3056 | lods byte [esi] |
3149 | call convert_register |
3057 | call convert_register |
3150 | mov bl,al |
3058 | mov bl,al |
3151 | mov al,ah |
3059 | mov al,ah |
3152 | cmp al,2 |
3060 | cmp al,2 |
3153 | je jmp_reg_16bit |
3061 | je jmp_reg_16bit |
Line 3177... | Line 3085... | ||
3177 | call skip_symbol |
3085 | call skip_symbol |
3178 | xchg esi,ebx |
3086 | xchg esi,ebx |
3179 | cmp byte [ebx],':' |
3087 | cmp byte [ebx],':' |
3180 | je jmp_far |
3088 | je jmp_far |
3181 | call get_relative_offset |
3089 | cmp [jump_type],3 |
3182 | cmp [jump_type],2 |
- | |
3183 | je invalid_operand |
3090 | je invalid_operand |
3184 | sub eax,2 |
3091 | jmp_near: |
3185 | jo jump_out_of_range |
- | |
3186 | cmp [next_pass_needed],0 |
- | |
3187 | jne jmp_value_ok |
- | |
3188 | cmp [value_type],1 |
- | |
3189 | je invalid_use_of_symbol |
- | |
3190 | ja jmp_32bit |
- | |
3191 | jmp_value_ok: |
- | |
3192 | mov bl,[operand_size] |
3092 | mov al,[operand_size] |
3193 | cmp bl,1 |
3093 | cmp al,2 |
3194 | je jmp_8bit |
3094 | je jmp_imm_16bit |
3195 | cmp bl,2 |
3095 | cmp al,4 |
3196 | je jmp_16bit |
3096 | je jmp_imm_32bit |
3197 | cmp bl,4 |
3097 | cmp al,8 |
3198 | je jmp_32bit |
3098 | je jmp_imm_64bit |
3199 | or bl,bl |
3099 | or al,al |
3200 | jnz invalid_operand_size |
3100 | jnz invalid_operand_size |
3201 | cmp [base_code],0E9h |
3101 | cmp [code_type],16 |
3202 | jne jmp_no8bit |
- | |
3203 | cmp eax,80h |
- | |
3204 | jb jmp_8bit |
- | |
3205 | cmp eax,-80h |
- | |
3206 | jae jmp_8bit |
- | |
3207 | jmp_no8bit: |
- | |
3208 | cmp [code_type],16 |
- | |
3209 | je jmp_16bit |
3102 | je jmp_imm_16bit |
3210 | jmp_32bit: |
3103 | cmp [code_type],64 |
- | 3104 | je jmp_imm_64bit |
|
- | 3105 | jmp_imm_32bit: |
|
3211 | test [operand_size],not 4 |
3106 | cmp [code_type],64 |
3212 | jnz invalid_operand_size |
3107 | je invalid_operand_size |
3213 | sub eax,2 |
3108 | call get_dword_value |
- | 3109 | cmp [code_type],16 |
|
- | 3110 | jne jmp_imm_32bit_prefix_ok |
|
- | 3111 | mov byte [edi],66h |
|
- | 3112 | inc edi |
|
- | 3113 | jmp_imm_32bit_prefix_ok: |
|
- | 3114 | call calculate_jump_offset |
|
- | 3115 | cdq |
|
3214 | jo jump_out_of_range |
3116 | call check_for_short_jump |
- | 3117 | jc jmp_short |
|
- | 3118 | jmp_imm_32bit_store: |
|
3215 | mov edx,eax |
3119 | mov edx,eax |
3216 | mov ecx,edi |
3120 | sub edx,3 |
3217 | call operand_32bit |
- | |
3218 | call store_instruction_code |
3121 | mov al,[base_code] |
3219 | mov eax,edi |
3122 | stos byte [edi] |
3220 | sub eax,ecx |
- | |
3221 | sub edx,eax |
- | |
3222 | jo jump_out_of_range |
- | |
3223 | mov eax,edx |
3123 | mov eax,edx |
3224 | call mark_relocation |
3124 | call mark_relocation |
3225 | stos dword [edi] |
3125 | stos dword [edi] |
3226 | jmp instruction_assembled |
3126 | jmp instruction_assembled |
3227 | jmp_16bit: |
3127 | jmp_imm_64bit: |
3228 | mov edx,eax |
3128 | cmp [code_type],64 |
3229 | mov ecx,edi |
- | |
3230 | call operand_16bit |
- | |
3231 | call store_instruction_code |
- | |
3232 | mov eax,edi |
- | |
3233 | sub eax,ecx |
- | |
3234 | sub edx,eax |
- | |
3235 | jo jump_out_of_range |
- | |
3236 | mov eax,edx |
- | |
3237 | stos word [edi] |
- | |
3238 | cmp eax,10000h |
- | |
3239 | jge jump_out_of_range |
- | |
3240 | cmp eax,-10000h |
- | |
3241 | jl jump_out_of_range |
- | |
3242 | jmp instruction_assembled |
- | |
3243 | jmp_8bit: |
- | |
3244 | cmp [base_code],0E9h |
- | |
3245 | jne invalid_operand_size |
3129 | jne invalid_operand_size |
3246 | mov edx,eax |
3130 | call get_qword_value |
- | 3131 | call calculate_jump_offset |
|
- | 3132 | mov ecx,edx |
|
3247 | mov ah,al |
3133 | cdq |
- | 3134 | cmp edx,ecx |
|
- | 3135 | jne value_out_of_range |
|
- | 3136 | call check_for_short_jump |
|
- | 3137 | jnc jmp_imm_32bit_store |
|
- | 3138 | jmp_short: |
|
- | 3139 | mov ah,al |
|
3248 | mov al,0EBh |
3140 | mov al,0EBh |
3249 | stos word [edi] |
3141 | stos word [edi] |
3250 | cmp edx,80h |
3142 | jmp instruction_assembled |
3251 | jge jump_out_of_range |
- | |
3252 | cmp edx,-80h |
- | |
3253 | jl jump_out_of_range |
- | |
3254 | jmp instruction_assembled |
- | |
3255 | jmp_far: |
3143 | jmp_imm_16bit: |
- | 3144 | call get_word_value |
|
- | 3145 | cmp [code_type],16 |
|
- | 3146 | je jmp_imm_16bit_prefix_ok |
|
- | 3147 | mov byte [edi],66h |
|
- | 3148 | inc edi |
|
- | 3149 | jmp_imm_16bit_prefix_ok: |
|
- | 3150 | call calculate_jump_offset |
|
- | 3151 | cwde |
|
- | 3152 | cdq |
|
- | 3153 | call check_for_short_jump |
|
- | 3154 | jc jmp_short |
|
- | 3155 | cmp [value_type],0 |
|
- | 3156 | jne invalid_use_of_symbol |
|
- | 3157 | mov edx,eax |
|
- | 3158 | dec edx |
|
- | 3159 | mov al,[base_code] |
|
- | 3160 | stos byte [edi] |
|
- | 3161 | mov eax,edx |
|
- | 3162 | stos word [edi] |
|
- | 3163 | jmp instruction_assembled |
|
- | 3164 | calculate_jump_offset: |
|
- | 3165 | cmp [value_undefined],0 |
|
- | 3166 | jne jump_offset_ok |
|
- | 3167 | add eax,dword [org_origin] |
|
- | 3168 | adc edx,dword [org_origin+4] |
|
- | 3169 | lea ebx,[edi+2] |
|
- | 3170 | sub eax,ebx |
|
- | 3171 | sbb edx,0 |
|
- | 3172 | mov bl,[value_type] |
|
- | 3173 | or bl,bl |
|
- | 3174 | je jump_offset_ok |
|
- | 3175 | test bl,1 |
|
- | 3176 | jnz invalid_use_of_symbol |
|
- | 3177 | cmp bl,[labels_type] |
|
- | 3178 | jne invalid_use_of_symbol |
|
- | 3179 | mov [value_type],0 |
|
- | 3180 | mov ecx,[symbol_identifier] |
|
- | 3181 | cmp ecx,[org_symbol] |
|
- | 3182 | je jump_offset_ok |
|
- | 3183 | mov [value_type],3 |
|
- | 3184 | jump_offset_ok: |
|
3256 | cmp [jump_type],1 |
3185 | ret |
- | 3186 | check_for_short_jump: |
|
- | 3187 | cmp [jump_type],1 |
|
3257 | je invalid_operand |
3188 | je forced_short |
- | 3189 | ja no_short_jump |
|
- | 3190 | cmp [base_code],0E8h |
|
- | 3191 | je no_short_jump |
|
- | 3192 | cmp [value_type],0 |
|
- | 3193 | jne no_short_jump |
|
- | 3194 | cmp eax,80h |
|
- | 3195 | jb short_jump |
|
- | 3196 | cmp eax,-80h |
|
- | 3197 | jae short_jump |
|
- | 3198 | no_short_jump: |
|
- | 3199 | clc |
|
- | 3200 | ret |
|
- | 3201 | forced_short: |
|
- | 3202 | cmp [base_code],0E8h |
|
- | 3203 | je illegal_instruction |
|
- | 3204 | cmp [next_pass_needed],0 |
|
- | 3205 | jne jmp_short_value_type_ok |
|
- | 3206 | cmp [value_type],0 |
|
- | 3207 | jne invalid_use_of_symbol |
|
- | 3208 | jmp_short_value_type_ok: |
|
- | 3209 | cmp eax,-80h |
|
- | 3210 | jae short_jump |
|
- | 3211 | cmp eax,80h |
|
- | 3212 | jae jump_out_of_range |
|
- | 3213 | short_jump: |
|
- | 3214 | stc |
|
- | 3215 | ret |
|
- | 3216 | jump_out_of_range: |
|
- | 3217 | cmp [error_line],0 |
|
- | 3218 | jne instruction_assembled |
|
- | 3219 | mov eax,[current_line] |
|
- | 3220 | mov [error_line],eax |
|
- | 3221 | mov [error],relative_jump_out_of_range |
|
- | 3222 | jmp instruction_assembled |
|
- | 3223 | jmp_far: |
|
- | 3224 | cmp [jump_type],2 |
|
- | 3225 | je invalid_operand |
|
3258 | cmp [code_type],64 |
3226 | cmp [code_type],64 |
3259 | je illegal_instruction |
3227 | je illegal_instruction |
3260 | mov al,[extended_code] |
3228 | mov al,[extended_code] |
3261 | mov [base_code],al |
3229 | mov [base_code],al |
3262 | call get_word_value |
3230 | call get_word_value |
Line 3301... | Line 3269... | ||
3301 | mov eax,ebx |
3269 | mov eax,ebx |
3302 | call mark_relocation |
3270 | call mark_relocation |
3303 | stos dword [edi] |
3271 | stos dword [edi] |
3304 | jmp jmp_far_segment |
3272 | jmp jmp_far_segment |
3305 | 3273 | conditional_jump: |
|
- | 3274 | mov [base_code],al |
|
- | 3275 | lods byte [esi] |
|
- | 3276 | call get_jump_operator |
|
- | 3277 | cmp [jump_type],3 |
|
- | 3278 | je invalid_operand |
|
- | 3279 | call get_size_operator |
|
- | 3280 | cmp al,'(' |
|
- | 3281 | jne invalid_operand |
|
- | 3282 | cmp byte [esi],'.' |
|
- | 3283 | je invalid_value |
|
- | 3284 | mov al,[operand_size] |
|
- | 3285 | cmp al,2 |
|
- | 3286 | je conditional_jump_16bit |
|
- | 3287 | cmp al,4 |
|
- | 3288 | je conditional_jump_32bit |
|
- | 3289 | cmp al,8 |
|
- | 3290 | je conditional_jump_64bit |
|
- | 3291 | or al,al |
|
- | 3292 | jnz invalid_operand_size |
|
- | 3293 | cmp [code_type],16 |
|
- | 3294 | je conditional_jump_16bit |
|
- | 3295 | cmp [code_type],64 |
|
- | 3296 | je conditional_jump_64bit |
|
- | 3297 | conditional_jump_32bit: |
|
- | 3298 | cmp [code_type],64 |
|
- | 3299 | je invalid_operand_size |
|
- | 3300 | call get_dword_value |
|
- | 3301 | cmp [code_type],16 |
|
- | 3302 | jne conditional_jump_32bit_prefix_ok |
|
- | 3303 | mov byte [edi],66h |
|
- | 3304 | inc edi |
|
- | 3305 | conditional_jump_32bit_prefix_ok: |
|
- | 3306 | call calculate_jump_offset |
|
- | 3307 | cdq |
|
- | 3308 | call check_for_short_jump |
|
- | 3309 | jc conditional_jump_short |
|
- | 3310 | conditional_jump_32bit_store: |
|
- | 3311 | mov edx,eax |
|
- | 3312 | sub edx,4 |
|
- | 3313 | mov ah,[base_code] |
|
- | 3314 | add ah,10h |
|
- | 3315 | mov al,0Fh |
|
- | 3316 | stos word [edi] |
|
- | 3317 | mov eax,edx |
|
- | 3318 | call mark_relocation |
|
- | 3319 | stos dword [edi] |
|
- | 3320 | jmp instruction_assembled |
|
- | 3321 | conditional_jump_64bit: |
|
- | 3322 | cmp [code_type],64 |
|
- | 3323 | jne invalid_operand_size |
|
- | 3324 | call get_qword_value |
|
- | 3325 | call calculate_jump_offset |
|
- | 3326 | mov ecx,edx |
|
- | 3327 | cdq |
|
- | 3328 | cmp edx,ecx |
|
- | 3329 | jne value_out_of_range |
|
- | 3330 | call check_for_short_jump |
|
- | 3331 | jnc conditional_jump_32bit_store |
|
- | 3332 | conditional_jump_short: |
|
- | 3333 | mov ah,al |
|
- | 3334 | mov al,[base_code] |
|
- | 3335 | stos word [edi] |
|
- | 3336 | jmp instruction_assembled |
|
- | 3337 | conditional_jump_16bit: |
|
- | 3338 | call get_word_value |
|
- | 3339 | cmp [code_type],16 |
|
- | 3340 | je conditional_jump_16bit_prefix_ok |
|
- | 3341 | mov byte [edi],66h |
|
- | 3342 | inc edi |
|
- | 3343 | conditional_jump_16bit_prefix_ok: |
|
- | 3344 | call calculate_jump_offset |
|
- | 3345 | cwde |
|
- | 3346 | cdq |
|
- | 3347 | call check_for_short_jump |
|
- | 3348 | jc conditional_jump_short |
|
- | 3349 | cmp [value_type],0 |
|
- | 3350 | jne invalid_use_of_symbol |
|
- | 3351 | mov edx,eax |
|
- | 3352 | sub edx,2 |
|
- | 3353 | mov ah,[base_code] |
|
- | 3354 | add ah,10h |
|
- | 3355 | mov al,0Fh |
|
- | 3356 | stos word [edi] |
|
- | 3357 | mov eax,edx |
|
- | 3358 | stos word [edi] |
|
- | 3359 | jmp instruction_assembled |
|
- | 3360 | loop_instruction_16bit: |
|
- | 3361 | cmp [code_type],64 |
|
- | 3362 | je illegal_instruction |
|
- | 3363 | mov dl,al |
|
- | 3364 | call address_16bit_prefix |
|
- | 3365 | mov al,dl |
|
- | 3366 | jmp loop_instruction |
|
- | 3367 | loop_instruction_32bit: |
|
- | 3368 | mov dl,al |
|
- | 3369 | call address_32bit_prefix |
|
- | 3370 | mov al,dl |
|
- | 3371 | jmp loop_instruction |
|
- | 3372 | loop_instruction_64bit: |
|
- | 3373 | cmp [code_type],64 |
|
- | 3374 | jne illegal_instruction |
|
- | 3375 | loop_instruction: |
|
- | 3376 | mov [base_code],al |
|
- | 3377 | lods byte [esi] |
|
- | 3378 | call get_jump_operator |
|
- | 3379 | cmp [jump_type],1 |
|
- | 3380 | ja invalid_operand |
|
- | 3381 | call get_size_operator |
|
- | 3382 | cmp al,'(' |
|
- | 3383 | jne invalid_operand |
|
- | 3384 | cmp byte [esi],'.' |
|
- | 3385 | je invalid_value |
|
- | 3386 | mov al,[operand_size] |
|
- | 3387 | cmp al,2 |
|
- | 3388 | je loop_jump_16bit |
|
- | 3389 | cmp al,4 |
|
- | 3390 | je loop_jump_32bit |
|
- | 3391 | cmp al,8 |
|
- | 3392 | je loop_jump_64bit |
|
- | 3393 | or al,al |
|
- | 3394 | jnz invalid_operand_size |
|
- | 3395 | cmp [code_type],16 |
|
- | 3396 | je loop_jump_16bit |
|
- | 3397 | cmp [code_type],64 |
|
- | 3398 | je loop_jump_64bit |
|
- | 3399 | loop_jump_32bit: |
|
- | 3400 | cmp [code_type],64 |
|
- | 3401 | je invalid_operand_size |
|
- | 3402 | call get_dword_value |
|
- | 3403 | cmp [code_type],16 |
|
- | 3404 | jne loop_jump_32bit_prefix_ok |
|
- | 3405 | mov byte [edi],66h |
|
- | 3406 | inc edi |
|
- | 3407 | loop_jump_32bit_prefix_ok: |
|
- | 3408 | call calculate_jump_offset |
|
- | 3409 | cdq |
|
- | 3410 | make_loop_jump: |
|
- | 3411 | call check_for_short_jump |
|
- | 3412 | jc conditional_jump_short |
|
- | 3413 | jmp jump_out_of_range |
|
- | 3414 | loop_jump_64bit: |
|
- | 3415 | cmp [code_type],64 |
|
- | 3416 | jne invalid_operand_size |
|
- | 3417 | call get_qword_value |
|
- | 3418 | call calculate_jump_offset |
|
- | 3419 | mov ecx,edx |
|
- | 3420 | cdq |
|
- | 3421 | cmp edx,ecx |
|
- | 3422 | jne value_out_of_range |
|
- | 3423 | jmp make_loop_jump |
|
- | 3424 | loop_jump_16bit: |
|
- | 3425 | call get_word_value |
|
- | 3426 | cmp [code_type],16 |
|
- | 3427 | je loop_jump_16bit_prefix_ok |
|
- | 3428 | mov byte [edi],66h |
|
- | 3429 | inc edi |
|
- | 3430 | loop_jump_16bit_prefix_ok: |
|
- | 3431 | call calculate_jump_offset |
|
- | 3432 | cwde |
|
- | 3433 | cdq |
|
- | 3434 | jmp make_loop_jump |
|
- | 3435 | ||
Line 3306... | Line 3436... | ||
3306 | movs_instruction: |
3436 | movs_instruction: |
3307 | lods byte [esi] |
3437 | lods byte [esi] |
3308 | call get_size_operator |
3438 | call get_size_operator |
3309 | cmp al,'[' |
3439 | cmp al,'[' |
Line 3735... | Line 3865... | ||
3735 | cmp al,10 |
3865 | cmp al,10 |
3736 | je lgdt_mem_80bit |
3866 | je lgdt_mem_80bit |
3737 | or al,al |
3867 | or al,al |
3738 | jnz invalid_operand_size |
3868 | jnz invalid_operand_size |
3739 | cmp [code_type],64 |
3869 | jmp lgdt_mem_store |
- | 3870 | lgdt_mem_80bit: |
|
- | 3871 | cmp [code_type],64 |
|
3740 | je lgdt_mem_80bit |
3872 | jne illegal_instruction |
- | 3873 | jmp lgdt_mem_store |
|
3741 | lgdt_mem_48bit: |
3874 | lgdt_mem_48bit: |
3742 | cmp [code_type],64 |
3875 | cmp [code_type],64 |
3743 | je illegal_instruction |
3876 | je illegal_instruction |
3744 | call store_instruction |
3877 | cmp [postbyte_register],2 |
3745 | jmp instruction_assembled |
- | |
3746 | lgdt_mem_80bit: |
3878 | jb lgdt_mem_store |
3747 | cmp [code_type],64 |
3879 | call operand_32bit |
3748 | jne illegal_instruction |
3880 | lgdt_mem_store: |
3749 | call store_instruction |
3881 | call store_instruction |
3750 | jmp instruction_assembled |
3882 | jmp instruction_assembled |
3751 | lar_instruction: |
3883 | lar_instruction: |
3752 | mov [extended_code],al |
3884 | mov [extended_code],al |
3753 | mov [base_code],0Fh |
3885 | mov [base_code],0Fh |
3754 | lods byte [esi] |
3886 | lods byte [esi] |
Line 3865... | Line 3997... | ||
3865 | cmp al,10h |
3997 | cmp al,10h |
3866 | jne invalid_operand |
3998 | jne invalid_operand |
3867 | lods byte [esi] |
3999 | lods byte [esi] |
3868 | call convert_register |
4000 | call convert_register |
3869 | add al,0C8h |
4001 | test al,1000b |
- | 4002 | jz bswap_reg_code_ok |
|
- | 4003 | or [rex_prefix],41h |
|
- | 4004 | and al,111b |
|
- | 4005 | bswap_reg_code_ok: |
|
- | 4006 | add al,0C8h |
|
3870 | mov [extended_code],al |
4007 | mov [extended_code],al |
3871 | mov [base_code],0Fh |
4008 | mov [base_code],0Fh |
3872 | cmp ah,8 |
4009 | cmp ah,8 |
3873 | je bswap_reg64 |
4010 | je bswap_reg64 |
3874 | cmp ah,4 |
4011 | cmp ah,4 |
Line 4649... | Line 4786... | ||
4649 | jae movq_mmreg |
4786 | jae movq_mmreg |
4650 | call convert_register |
4787 | call convert_register |
4651 | cmp ah,8 |
4788 | cmp ah,8 |
4652 | jne invalid_operand_size |
4789 | jne invalid_operand_size |
4653 | mov [operand_size],0 |
4790 | mov bl,al |
4654 | mov bl,al |
- | |
4655 | lods byte [esi] |
4791 | lods byte [esi] |
4656 | cmp al,',' |
4792 | cmp al,',' |
4657 | jne invalid_operand |
4793 | jne invalid_operand |
4658 | lods byte [esi] |
4794 | lods byte [esi] |
4659 | call get_size_operator |
4795 | call get_size_operator |
Line 4670... | Line 4806... | ||
4670 | movq_mmreg: |
4806 | movq_mmreg: |
4671 | call convert_mmx_register |
4807 | call convert_mmx_register |
4672 | mov [postbyte_register],al |
4808 | mov [postbyte_register],al |
4673 | mov [extended_code],6Fh |
4809 | mov [extended_code],6Fh |
4674 | cmp ah,16 |
4810 | mov [mmx_size],ah |
- | 4811 | cmp ah,16 |
|
4675 | jne movq_mmreg_ |
4812 | jne movq_mmreg_ |
4676 | mov [extended_code],7Eh |
4813 | mov [extended_code],7Eh |
4677 | mov [operand_prefix],0F3h |
4814 | mov [operand_prefix],0F3h |
4678 | movq_mmreg_: |
4815 | movq_mmreg_: |
4679 | lods byte [esi] |
4816 | lods byte [esi] |
4680 | cmp al,',' |
4817 | cmp al,',' |
4681 | jne invalid_operand |
4818 | jne invalid_operand |
4682 | mov [operand_size],0 |
4819 | lods byte [esi] |
4683 | lods byte [esi] |
- | |
4684 | call get_size_operator |
4820 | call get_size_operator |
4685 | cmp al,10h |
4821 | cmp al,10h |
4686 | je movq_mmreg_reg |
4822 | je movq_mmreg_reg |
4687 | call get_address |
4823 | call get_address |
4688 | test [operand_size],not 8 |
4824 | test [operand_size],not 8 |
Line 4699... | Line 4835... | ||
4699 | jne invalid_operand_size |
4835 | jne invalid_operand_size |
4700 | mov [extended_code],6Eh |
4836 | mov [extended_code],6Eh |
4701 | mov [operand_prefix],0 |
4837 | mov [operand_prefix],0 |
4702 | mov bl,al |
4838 | mov bl,al |
4703 | call make_mmx_prefix |
4839 | cmp [mmx_size],16 |
- | 4840 | jne movq_mmreg_reg_store |
|
- | 4841 | mov [operand_prefix],66h |
|
- | 4842 | movq_mmreg_reg_store: |
|
4704 | call operand_64bit |
4843 | call operand_64bit |
4705 | call store_nomem_instruction |
4844 | call store_nomem_instruction |
4706 | jmp instruction_assembled |
4845 | jmp instruction_assembled |
4707 | movq_mmreg_mmreg: |
4846 | movq_mmreg_mmreg: |
4708 | call convert_mmx_register |
4847 | call convert_mmx_register |
4709 | mov bl,al |
4848 | mov bl,al |
Line 5602... | Line 5741... | ||
5602 | cmp al,'[' |
5741 | cmp al,'[' |
5603 | jne invalid_operand |
5742 | jne invalid_operand |
5604 | call get_address |
5743 | call get_address |
5605 | jmp vmread_check_size |
5744 | jmp vmread_check_size |
5606 | 5745 | simple_svm_instruction: |
|
- | 5746 | push eax |
|
- | 5747 | mov [base_code],0Fh |
|
- | 5748 | mov [extended_code],1 |
|
- | 5749 | lods byte [esi] |
|
- | 5750 | call get_size_operator |
|
- | 5751 | cmp al,10h |
|
- | 5752 | jne invalid_operand |
|
- | 5753 | lods byte [esi] |
|
- | 5754 | call convert_register |
|
- | 5755 | or al,al |
|
- | 5756 | jnz invalid_operand |
|
- | 5757 | simple_svm_detect_size: |
|
- | 5758 | cmp ah,2 |
|
- | 5759 | je simple_svm_16bit |
|
- | 5760 | cmp ah,4 |
|
- | 5761 | je simple_svm_32bit |
|
- | 5762 | cmp [code_type],64 |
|
- | 5763 | jne invalid_operand_size |
|
- | 5764 | jmp simple_svm_store |
|
- | 5765 | simple_svm_16bit: |
|
- | 5766 | cmp [code_type],16 |
|
- | 5767 | je simple_svm_store |
|
- | 5768 | cmp [code_type],64 |
|
- | 5769 | je invalid_operand_size |
|
- | 5770 | jmp prefixed_svm_store |
|
- | 5771 | simple_svm_32bit: |
|
- | 5772 | cmp [code_type],32 |
|
- | 5773 | je simple_svm_store |
|
- | 5774 | prefixed_svm_store: |
|
- | 5775 | mov al,67h |
|
- | 5776 | stos byte [edi] |
|
- | 5777 | simple_svm_store: |
|
- | 5778 | call store_instruction_code |
|
- | 5779 | pop eax |
|
- | 5780 | stos byte [edi] |
|
- | 5781 | jmp instruction_assembled |
|
- | 5782 | skinit_instruction: |
|
- | 5783 | lods byte [esi] |
|
- | 5784 | call get_size_operator |
|
- | 5785 | cmp al,10h |
|
- | 5786 | jne invalid_operand |
|
- | 5787 | lods byte [esi] |
|
- | 5788 | call convert_register |
|
- | 5789 | cmp ax,0400h |
|
- | 5790 | jne invalid_operand |
|
- | 5791 | mov al,0DEh |
|
- | 5792 | jmp simple_vmx_instruction |
|
- | 5793 | invlpga_instruction: |
|
- | 5794 | push eax |
|
- | 5795 | mov [base_code],0Fh |
|
- | 5796 | mov [extended_code],1 |
|
- | 5797 | lods byte [esi] |
|
- | 5798 | call get_size_operator |
|
- | 5799 | cmp al,10h |
|
- | 5800 | jne invalid_operand |
|
- | 5801 | lods byte [esi] |
|
- | 5802 | call convert_register |
|
- | 5803 | or al,al |
|
- | 5804 | jnz invalid_operand |
|
- | 5805 | mov bl,ah |
|
- | 5806 | mov [operand_size],0 |
|
- | 5807 | lods byte [esi] |
|
- | 5808 | cmp al,',' |
|
- | 5809 | jne invalid_operand |
|
- | 5810 | lods byte [esi] |
|
- | 5811 | call get_size_operator |
|
- | 5812 | cmp al,10h |
|
- | 5813 | jne invalid_operand |
|
- | 5814 | lods byte [esi] |
|
- | 5815 | call convert_register |
|
- | 5816 | cmp ax,0401h |
|
- | 5817 | jne invalid_operand |
|
- | 5818 | mov ah,bl |
|
- | 5819 | jmp simple_svm_detect_size |
|
- | 5820 | ||
Line 5607... | Line 5821... | ||
5607 | convert_register: |
5821 | convert_register: |
5608 | mov ah,al |
5822 | mov ah,al |
5609 | shr ah,4 |
5823 | shr ah,4 |
5610 | and al,0Fh |
5824 | and al,0Fh |
Line 5714... | Line 5928... | ||
5714 | mov [address_size],al |
5928 | mov [address_size],al |
5715 | mov [value_size],al |
5929 | mov [value_size],al |
5716 | address_size_prefix_ok: |
5930 | address_size_prefix_ok: |
5717 | call calculate_address |
5931 | call calculate_address |
5718 | mov [address_high],edx |
5932 | cmp byte [esi-1],']' |
- | 5933 | jne invalid_address |
|
- | 5934 | mov [address_high],edx |
|
5719 | mov edx,eax |
5935 | mov edx,eax |
5720 | cmp [code_type],64 |
5936 | cmp [code_type],64 |
5721 | jne address_ok |
5937 | jne address_ok |
5722 | or bx,bx |
5938 | or bx,bx |
5723 | jnz address_ok |
5939 | jnz address_ok |
5724 | test ch,0Fh |
5940 | test ch,0Fh |
5725 | jnz address_ok |
5941 | jnz address_ok |
5726 | calculate_relative_address: |
5942 | calculate_relative_address: |
5727 | call calculate_relative_offset |
5943 | call calculate_relative_offset |
5728 | mov [address_high],edx |
5944 | cmp byte [esi-1],']' |
- | 5945 | jne invalid_address |
|
- | 5946 | mov [address_high],edx |
|
5729 | mov edx,[symbol_identifier] |
5947 | mov edx,[symbol_identifier] |
5730 | mov [address_symbol],edx |
5948 | mov [address_symbol],edx |
5731 | mov edx,eax |
5949 | mov edx,eax |
5732 | mov ch,[value_type] |
5950 | mov ch,[value_type] |
5733 | mov bx,0FF00h |
5951 | mov bx,0FF00h |
Line 5747... | Line 5965... | ||
5747 | size_prefix_ok: |
5965 | size_prefix_ok: |
5748 | ret |
5966 | ret |
5749 | operand_64bit: |
5967 | operand_64bit: |
5750 | cmp [code_type],64 |
5968 | cmp [code_type],64 |
5751 | jne invalid_operand_size |
5969 | jne illegal_instruction |
5752 | or [rex_prefix],48h |
5970 | or [rex_prefix],48h |
5753 | ret |
5971 | ret |
5754 | operand_autodetect: |
5972 | operand_autodetect: |
5755 | cmp al,2 |
5973 | cmp al,2 |
5756 | je operand_16bit |
5974 | je operand_16bit |
5757 | cmp al,4 |
5975 | cmp al,4 |
Line 5967... | Line 6185... | ||
5967 | stos byte [edi] |
6185 | stos byte [edi] |
5968 | ret |
6186 | ret |
5969 | postbyte_32bit: |
6187 | postbyte_32bit: |
5970 | call address_32bit_prefix |
6188 | call address_32bit_prefix |
5971 | call store_instruction_code |
6189 | jmp address_prefix_ok |
5972 | cmp bl,44h |
- | |
5973 | je invalid_address |
- | |
5974 | or cl,cl |
- | |
5975 | jz only_base_register |
- | |
5976 | jmp base_and_index |
6190 | postbyte_64bit: |
5977 | postbyte_64bit: |
- | |
5978 | cmp [code_type],64 |
6191 | cmp [code_type],64 |
5979 | jne invalid_address_size |
6192 | jne invalid_address_size |
5980 | test bh,1000b |
6193 | address_prefix_ok: |
- | 6194 | test bh,1000b |
|
5981 | jz base_code_ok |
6195 | jz base_code_ok |
5982 | or [rex_prefix],41h |
6196 | or [rex_prefix],41h |
5983 | base_code_ok: |
6197 | base_code_ok: |
5984 | test bl,1000b |
6198 | test bl,1000b |
5985 | jz index_code_ok |
6199 | jz index_code_ok |
5986 | or [rex_prefix],42h |
6200 | or [rex_prefix],42h |
5987 | index_code_ok: |
6201 | index_code_ok: |
5988 | call store_instruction_code |
6202 | call store_instruction_code |
5989 | or cl,cl |
6203 | cmp bl,44h |
- | 6204 | je swap_base_with_index |
|
- | 6205 | cmp bl,84h |
|
- | 6206 | jne base_register_ok |
|
- | 6207 | swap_base_with_index: |
|
- | 6208 | cmp cl,1 |
|
- | 6209 | jne invalid_address |
|
- | 6210 | xchg bl,bh |
|
- | 6211 | cmp bl,44h |
|
- | 6212 | je invalid_address |
|
- | 6213 | cmp bl,84h |
|
- | 6214 | je invalid_address |
|
- | 6215 | base_register_ok: |
|
- | 6216 | or cl,cl |
|
5990 | jz only_base_register |
6217 | jz only_base_register |
5991 | base_and_index: |
6218 | base_and_index: |
5992 | mov al,100b |
6219 | mov al,100b |
5993 | xor ah,ah |
6220 | xor ah,ah |
5994 | cmp cl,1 |
6221 | cmp cl,1 |
Line 6013... | Line 6240... | ||
6013 | and bh,111b |
6240 | and bh,111b |
6014 | or ah,bh |
6241 | or ah,bh |
6015 | test ch,44h |
6242 | test ch,44h |
6016 | jnz sib_address_32bit_value |
6243 | jnz sib_address_32bit_value |
6017 | or ch,ch |
6244 | test ch,88h |
- | 6245 | jnz sib_address_32bit_value |
|
- | 6246 | or ch,ch |
|
6018 | jnz address_sizes_do_not_agree |
6247 | jnz address_sizes_do_not_agree |
6019 | cmp bh,5 |
6248 | cmp bh,5 |
6020 | je address_value |
6249 | je address_value |
6021 | or edx,edx |
6250 | or edx,edx |
6022 | jz sib_address |
6251 | jz sib_address |
Line 6075... | Line 6304... | ||
6075 | cmp al,4 |
6304 | cmp al,4 |
6076 | je zero_index_register |
6305 | je zero_index_register |
6077 | test ch,44h |
6306 | test ch,44h |
6078 | jnz simple_address_32bit_value |
6307 | jnz simple_address_32bit_value |
6079 | or ch,ch |
6308 | test ch,88h |
- | 6309 | jnz simple_address_32bit_value |
|
- | 6310 | or ch,ch |
|
6080 | jnz address_sizes_do_not_agree |
6311 | jnz address_sizes_do_not_agree |
6081 | or edx,edx |
6312 | or edx,edx |
6082 | jz simple_address |
6313 | jz simple_address |
6083 | cmp edx,80h |
6314 | cmp edx,80h |
6084 | jb simple_address_8bit_value |
6315 | jb simple_address_8bit_value |
Line 6164... | Line 6395... | ||
6164 | ret |
6395 | ret |
6165 | address_immediate_sib: |
6396 | address_immediate_sib: |
6166 | test ch,not 44h |
6397 | test ch,not 44h |
6167 | jnz invalid_address_size |
6398 | jnz invalid_address_size |
6168 | call address_32bit_prefix |
6399 | cmp [value_type],0 |
- | 6400 | jne address_immediate_sib_nosignextend |
|
- | 6401 | test edx,80000000h |
|
- | 6402 | jz address_immediate_sib_prefix_ok |
|
- | 6403 | address_immediate_sib_nosignextend: |
|
- | 6404 | call address_32bit_prefix |
|
6169 | call store_instruction_code |
6405 | address_immediate_sib_prefix_ok: |
- | 6406 | call store_instruction_code |
|
6170 | mov al,100b |
6407 | mov al,100b |
6171 | mov ah,100101b |
6408 | mov ah,100101b |
6172 | mov cl,[postbyte_register] |
6409 | mov cl,[postbyte_register] |
6173 | shl cl,3 |
6410 | shl cl,3 |
6174 | or al,cl |
6411 | or al,cl |
Line 6254... | Line 6491... | ||
6254 | mov eax,dword [value] |
6491 | mov eax,dword [value] |
6255 | call mark_relocation |
6492 | call mark_relocation |
6256 | stos dword [edi] |
6493 | stos dword [edi] |
6257 | ret |
6494 | ret |
6258 | 6495 | ||
6259 | address_registers: |
- | |
6260 | db 2,'bp',0,25h |
- | |
6261 | db 2,'bx',0,23h |
- | |
6262 | db 2,'di',0,27h |
- | |
6263 | db 3,'eax',0,40h |
- | |
6264 | db 3,'ebp',0,45h |
- | |
6265 | db 3,'ebx',0,43h |
- | |
6266 | db 3,'ecx',0,41h |
- | |
6267 | db 3,'edi',0,47h |
- | |
6268 | db 3,'edx',0,42h |
- | |
6269 | db 3,'esi',0,46h |
- | |
6270 | db 3,'esp',0,44h |
- | |
6271 | db 3,'r10',10h,8Ah |
- | |
6272 | db 3,'r11',10h,8Bh |
- | |
6273 | db 3,'r12',10h,8Ch |
- | |
6274 | db 3,'r13',10h,8Dh |
- | |
6275 | db 3,'r14',10h,8Eh |
- | |
6276 | db 3,'r15',10h,8Fh |
- | |
6277 | db 2,'r8',10h,88h |
- | |
6278 | db 2,'r9',10h,89h |
- | |
6279 | db 3,'rax',0,80h |
- | |
6280 | db 3,'rbp',0,85h |
- | |
6281 | db 3,'rbx',0,83h |
- | |
6282 | db 3,'rcx',0,81h |
- | |
6283 | db 3,'rdi',0,87h |
- | |
6284 | db 3,'rdx',0,82h |
- | |
6285 | db 3,'rip',0,0F0h |
- | |
6286 | db 3,'rsi',0,86h |
- | |
6287 | db 3,'rsp',0,84h |
- | |
6288 | db 2,'si',0,26h |
- | |
6289 | db 0 |
- | |
6290 | - | ||
6291 | address_sizes: |
- | |
6292 | db 4,'byte',0,1 |
- | |
6293 | db 5,'dword',0,4 |
- | |
6294 | db 5,'qword',0,8 |
- | |
6295 | db 4,'word',0,2 |
- | |
6296 | db 0 |
- | |
6297 | - | ||
6298 | symbols: |
- | |
6299 | db 2,'ah',10h,04h |
- | |
6300 | db 2,'al',10h,10h |
- | |
6301 | db 2,'ax',10h,20h |
- | |
6302 | db 2,'bh',10h,07h |
- | |
6303 | db 2,'bl',10h,13h |
- | |
6304 | db 2,'bp',10h,25h |
- | |
6305 | db 3,'bpl',10h,15h |
- | |
6306 | db 2,'bx',10h,23h |
- | |
6307 | db 4,'byte',11h,1 |
- | |
6308 | db 2,'ch',10h,05h |
- | |
6309 | db 2,'cl',10h,11h |
- | |
6310 | db 3,'cr0',10h,50h |
- | |
6311 | db 3,'cr1',10h,51h |
- | |
6312 | db 3,'cr2',10h,52h |
- | |
6313 | db 3,'cr3',10h,53h |
- | |
6314 | db 3,'cr4',10h,54h |
- | |
6315 | db 3,'cr5',10h,55h |
- | |
6316 | db 3,'cr6',10h,56h |
- | |
6317 | db 3,'cr7',10h,57h |
- | |
6318 | db 3,'cr8',10h,58h |
- | |
6319 | db 3,'cr9',10h,59h |
- | |
6320 | db 4,'cr10',10h,5Ah |
- | |
6321 | db 4,'cr11',10h,5Bh |
- | |
6322 | db 4,'cr12',10h,5Ch |
- | |
6323 | db 4,'cr13',10h,5Dh |
- | |
6324 | db 4,'cr14',10h,5Eh |
- | |
6325 | db 4,'cr15',10h,5Fh |
- | |
6326 | db 2,'cs',10h,62h |
- | |
6327 | db 2,'cx',10h,21h |
- | |
6328 | db 2,'dh',10h,06h |
- | |
6329 | db 2,'di',10h,27h |
- | |
6330 | db 3,'dil',10h,17h |
- | |
6331 | db 2,'dl',10h,12h |
- | |
6332 | db 6,'dqword',11h,16 |
- | |
6333 | db 3,'dr0',10h,70h |
- | |
6334 | db 3,'dr1',10h,71h |
- | |
6335 | db 3,'dr2',10h,72h |
- | |
6336 | db 3,'dr3',10h,73h |
- | |
6337 | db 3,'dr4',10h,74h |
- | |
6338 | db 3,'dr5',10h,75h |
- | |
6339 | db 3,'dr6',10h,76h |
- | |
6340 | db 3,'dr7',10h,77h |
- | |
6341 | db 3,'dr8',10h,78h |
- | |
6342 | db 3,'dr9',10h,79h |
- | |
6343 | db 4,'dr10',10h,7Ah |
- | |
6344 | db 4,'dr11',10h,7Bh |
- | |
6345 | db 4,'dr12',10h,7Ch |
- | |
6346 | db 4,'dr13',10h,7Dh |
- | |
6347 | db 4,'dr14',10h,7Eh |
- | |
6348 | db 4,'dr15',10h,7Fh |
- | |
6349 | db 2,'ds',10h,64h |
- | |
6350 | db 5,'dword',11h,4 |
- | |
6351 | db 2,'dx',10h,22h |
- | |
6352 | db 3,'eax',10h,40h |
- | |
6353 | db 3,'ebp',10h,45h |
- | |
6354 | db 3,'ebx',10h,43h |
- | |
6355 | db 3,'ecx',10h,41h |
- | |
6356 | db 3,'edi',10h,47h |
- | |
6357 | db 3,'edx',10h,42h |
- | |
6358 | db 2,'es',10h,61h |
- | |
6359 | db 3,'esi',10h,46h |
- | |
6360 | db 3,'esp',10h,44h |
- | |
6361 | db 3,'far',12h,2 |
- | |
6362 | db 2,'fs',10h,65h |
- | |
6363 | db 5,'fword',11h,6 |
- | |
6364 | db 2,'gs',10h,66h |
- | |
6365 | db 3,'mm0',10h,0B0h |
- | |
6366 | db 3,'mm1',10h,0B1h |
- | |
6367 | db 3,'mm2',10h,0B2h |
- | |
6368 | db 3,'mm3',10h,0B3h |
- | |
6369 | db 3,'mm4',10h,0B4h |
- | |
6370 | db 3,'mm5',10h,0B5h |
- | |
6371 | db 3,'mm6',10h,0B6h |
- | |
6372 | db 3,'mm7',10h,0B7h |
- | |
6373 | db 4,'near',12h,1 |
- | |
6374 | db 5,'pword',11h,6 |
- | |
6375 | db 5,'qword',11h,8 |
- | |
6376 | db 3,'r10',10h,8Ah |
- | |
6377 | db 4,'r10b',10h,1Ah |
- | |
6378 | db 4,'r10d',10h,4Ah |
- | |
6379 | db 4,'r10w',10h,2Ah |
- | |
6380 | db 3,'r11',10h,8Bh |
- | |
6381 | db 4,'r11b',10h,1Bh |
- | |
6382 | db 4,'r11d',10h,4Bh |
- | |
6383 | db 4,'r11w',10h,2Bh |
- | |
6384 | db 3,'r12',10h,8Ch |
- | |
6385 | db 4,'r12b',10h,1Ch |
- | |
6386 | db 4,'r12d',10h,4Ch |
- | |
6387 | db 4,'r12w',10h,2Ch |
- | |
6388 | db 3,'r13',10h,8Dh |
- | |
6389 | db 4,'r13b',10h,1Dh |
- | |
6390 | db 4,'r13d',10h,4Dh |
- | |
6391 | db 4,'r13w',10h,2Dh |
- | |
6392 | db 3,'r14',10h,8Eh |
- | |
6393 | db 4,'r14b',10h,1Eh |
- | |
6394 | db 4,'r14d',10h,4Eh |
- | |
6395 | db 4,'r14w',10h,2Eh |
- | |
6396 | db 3,'r15',10h,8Fh |
- | |
6397 | db 4,'r15b',10h,1Fh |
- | |
6398 | db 4,'r15d',10h,4Fh |
- | |
6399 | db 4,'r15w',10h,2Fh |
- | |
6400 | db 2,'r8',10h,88h |
- | |
6401 | db 3,'r8b',10h,18h |
- | |
6402 | db 3,'r8d',10h,48h |
- | |
6403 | db 3,'r8w',10h,28h |
- | |
6404 | db 2,'r9',10h,89h |
- | |
6405 | db 3,'r9b',10h,19h |
- | |
6406 | db 3,'r9d',10h,49h |
- | |
6407 | db 3,'r9w',10h,29h |
- | |
6408 | db 3,'rax',10h,80h |
- | |
6409 | db 3,'rbp',10h,85h |
- | |
6410 | db 3,'rbx',10h,83h |
- | |
6411 | db 3,'rcx',10h,81h |
- | |
6412 | db 3,'rdi',10h,87h |
- | |
6413 | db 3,'rdx',10h,82h |
- | |
6414 | db 3,'rsi',10h,86h |
- | |
6415 | db 3,'rsp',10h,84h |
- | |
6416 | db 2,'si',10h,26h |
- | |
6417 | db 3,'sil',10h,16h |
- | |
6418 | db 2,'sp',10h,24h |
- | |
6419 | db 3,'spl',10h,14h |
- | |
6420 | db 2,'ss',10h,63h |
- | |
6421 | db 2,'st',10h,0A0h |
- | |
6422 | db 3,'st0',10h,0A0h |
- | |
6423 | db 3,'st1',10h,0A1h |
- | |
6424 | db 3,'st2',10h,0A2h |
- | |
6425 | db 3,'st3',10h,0A3h |
- | |
6426 | db 3,'st4',10h,0A4h |
- | |
6427 | db 3,'st5',10h,0A5h |
- | |
6428 | db 3,'st6',10h,0A6h |
- | |
6429 | db 3,'st7',10h,0A7h |
- | |
6430 | db 5,'tbyte',11h,0Ah |
- | |
6431 | db 3,'tr0',10h,90h |
- | |
6432 | db 3,'tr1',10h,91h |
- | |
6433 | db 3,'tr2',10h,92h |
- | |
6434 | db 3,'tr3',10h,93h |
- | |
6435 | db 3,'tr4',10h,94h |
- | |
6436 | db 3,'tr5',10h,95h |
- | |
6437 | db 3,'tr6',10h,96h |
- | |
6438 | db 3,'tr7',10h,97h |
- | |
6439 | db 5,'tword',11h,0Ah |
- | |
6440 | db 5,'use16',13h,16 |
- | |
6441 | db 5,'use32',13h,32 |
- | |
6442 | db 5,'use64',13h,64 |
- | |
6443 | db 4,'word',11h,2 |
- | |
6444 | db 4,'xmm0',10h,0C0h |
- | |
6445 | db 4,'xmm1',10h,0C1h |
- | |
6446 | db 5,'xmm10',10h,0CAh |
- | |
6447 | db 5,'xmm11',10h,0CBh |
- | |
6448 | db 5,'xmm12',10h,0CCh |
- | |
6449 | db 5,'xmm13',10h,0CDh |
- | |
6450 | db 5,'xmm14',10h,0CEh |
- | |
6451 | db 5,'xmm15',10h,0CFh |
- | |
6452 | db 4,'xmm2',10h,0C2h |
- | |
6453 | db 4,'xmm3',10h,0C3h |
- | |
6454 | db 4,'xmm4',10h,0C4h |
- | |
6455 | db 4,'xmm5',10h,0C5h |
- | |
6456 | db 4,'xmm6',10h,0C6h |
- | |
6457 | db 4,'xmm7',10h,0C7h |
- | |
6458 | db 4,'xmm8',10h,0C8h |
- | |
6459 | db 4,'xmm9',10h,0C9h |
- | |
6460 | db 0 |
- | |
6461 | - | ||
6462 | data_handlers: |
- | |
6463 | dw data_bytes-assembler |
- | |
6464 | dw data_file-assembler |
- | |
6465 | dw reserve_bytes-assembler |
- | |
6466 | dw data_words-assembler |
- | |
6467 | dw data_unicode-assembler |
- | |
6468 | dw reserve_words-assembler |
- | |
6469 | dw data_dwords-assembler |
- | |
6470 | dw reserve_dwords-assembler |
- | |
6471 | dw data_pwords-assembler |
- | |
6472 | dw reserve_pwords-assembler |
- | |
6473 | dw data_qwords-assembler |
- | |
6474 | dw reserve_qwords-assembler |
- | |
6475 | dw data_twords-assembler |
- | |
6476 | dw reserve_twords-assembler |
- | |
6477 | - | ||
6478 | data_directives: |
- | |
6479 | db 2,'db',1,0 |
- | |
6480 | db 2,'dd',4,6 |
- | |
6481 | db 2,'df',6,8 |
- | |
6482 | db 2,'dp',6,8 |
- | |
6483 | db 2,'dq',8,10 |
- | |
6484 | db 2,'dt',10,12 |
- | |
6485 | db 2,'du',2,4 |
- | |
6486 | db 2,'dw',2,3 |
- | |
6487 | db 4,'file',1,1 |
- | |
6488 | db 2,'rb',1,2 |
- | |
6489 | db 2,'rd',4,7 |
- | |
6490 | db 2,'rf',6,9 |
- | |
6491 | db 2,'rp',6,9 |
- | |
6492 | db 2,'rq',8,11 |
- | |
6493 | db 2,'rt',10,13 |
- | |
6494 | db 2,'rw',2,5 |
- | |
6495 | db 0 |
- | |
6496 | - | ||
6497 | instructions: |
- | |
6498 | dw instructions_2-instructions |
- | |
6499 | dw instructions_3-instructions |
- | |
6500 | dw instructions_4-instructions |
- | |
6501 | dw instructions_5-instructions |
- | |
6502 | dw instructions_6-instructions |
- | |
6503 | dw instructions_7-instructions |
- | |
6504 | dw instructions_8-instructions |
- | |
6505 | dw instructions_9-instructions |
- | |
6506 | dw instructions_10-instructions |
- | |
6507 | dw instructions_11-instructions |
- | |
6508 | - | ||
6509 | instructions_2: |
- | |
6510 | db 'bt',4 |
- | |
6511 | dw bt_instruction-assembler |
- | |
6512 | db 'if',0 |
- | |
6513 | dw if_directive-assembler |
- | |
6514 | db 'in',0 |
- | |
6515 | dw in_instruction-assembler |
- | |
6516 | db 'ja',77h |
- | |
6517 | dw conditional_jump-assembler |
- | |
6518 | db 'jb',72h |
- | |
6519 | dw conditional_jump-assembler |
- | |
6520 | db 'jc',72h |
- | |
6521 | dw conditional_jump-assembler |
- | |
6522 | db 'je',74h |
- | |
6523 | dw conditional_jump-assembler |
- | |
6524 | db 'jg',7Fh |
- | |
6525 | dw conditional_jump-assembler |
- | |
6526 | db 'jl',7Ch |
- | |
6527 | dw conditional_jump-assembler |
- | |
6528 | db 'jo',70h |
- | |
6529 | dw conditional_jump-assembler |
- | |
6530 | db 'jp',7Ah |
- | |
6531 | dw conditional_jump-assembler |
- | |
6532 | db 'js',78h |
- | |
6533 | dw conditional_jump-assembler |
- | |
6534 | db 'jz',74h |
- | |
6535 | dw conditional_jump-assembler |
- | |
6536 | db 'or',08h |
- | |
6537 | dw basic_instruction-assembler |
- | |
6538 | db 0 |
- | |
6539 | instructions_3: |
- | |
6540 | db 'aaa',37h |
- | |
6541 | dw simple_instruction_except64-assembler |
- | |
6542 | db 'aad',0D5h |
- | |
6543 | dw aa_instruction-assembler |
- | |
6544 | db 'aam',0D4h |
- | |
6545 | dw aa_instruction-assembler |
- | |
6546 | db 'aas',3Fh |
- | |
6547 | dw simple_instruction_except64-assembler |
- | |
6548 | db 'adc',10h |
- | |
6549 | dw basic_instruction-assembler |
- | |
6550 | db 'add',00h |
- | |
6551 | dw basic_instruction-assembler |
- | |
6552 | db 'and',20h |
- | |
6553 | dw basic_instruction-assembler |
- | |
6554 | db 'bsf',0BCh |
- | |
6555 | dw bs_instruction-assembler |
- | |
6556 | db 'bsr',0BDh |
- | |
6557 | dw bs_instruction-assembler |
- | |
6558 | db 'btc',7 |
- | |
6559 | dw bt_instruction-assembler |
- | |
6560 | db 'btr',6 |
- | |
6561 | dw bt_instruction-assembler |
- | |
6562 | db 'bts',5 |
- | |
6563 | dw bt_instruction-assembler |
- | |
6564 | db 'cbw',98h |
- | |
6565 | dw simple_instruction_16bit-assembler |
- | |
6566 | db 'cdq',99h |
- | |
6567 | dw simple_instruction_32bit-assembler |
- | |
6568 | db 'clc',0F8h |
- | |
6569 | dw simple_instruction-assembler |
- | |
6570 | db 'cld',0FCh |
- | |
6571 | dw simple_instruction-assembler |
- | |
6572 | db 'cli',0FAh |
- | |
6573 | dw simple_instruction-assembler |
- | |
6574 | db 'cmc',0F5h |
- | |
6575 | dw simple_instruction-assembler |
- | |
6576 | db 'cmp',38h |
- | |
6577 | dw basic_instruction-assembler |
- | |
6578 | db 'cqo',99h |
- | |
6579 | dw simple_instruction_64bit-assembler |
- | |
6580 | db 'cwd',99h |
- | |
6581 | dw simple_instruction_16bit-assembler |
- | |
6582 | db 'daa',27h |
- | |
6583 | dw simple_instruction_except64-assembler |
- | |
6584 | db 'das',2Fh |
- | |
6585 | dw simple_instruction_except64-assembler |
- | |
6586 | db 'dec',1 |
- | |
6587 | dw inc_instruction-assembler |
- | |
6588 | db 'div',6 |
- | |
6589 | dw single_operand_instruction-assembler |
- | |
6590 | db 'end',0 |
- | |
6591 | dw end_directive-assembler |
- | |
6592 | db 'fld',0 |
- | |
6593 | dw fld_instruction-assembler |
- | |
6594 | db 'fst',2 |
- | |
6595 | dw fld_instruction-assembler |
- | |
6596 | db 'hlt',0F4h |
- | |
6597 | dw simple_instruction-assembler |
- | |
6598 | db 'inc',0 |
- | |
6599 | dw inc_instruction-assembler |
- | |
6600 | db 'ins',6Ch |
- | |
6601 | dw ins_instruction-assembler |
- | |
6602 | db 'int',0CDh |
- | |
6603 | dw int_instruction-assembler |
- | |
6604 | db 'jae',73h |
- | |
6605 | dw conditional_jump-assembler |
- | |
6606 | db 'jbe',76h |
- | |
6607 | dw conditional_jump-assembler |
- | |
6608 | db 'jge',7Dh |
- | |
6609 | dw conditional_jump-assembler |
- | |
6610 | db 'jle',7Eh |
- | |
6611 | dw conditional_jump-assembler |
- | |
6612 | db 'jmp',0 |
- | |
6613 | dw jmp_instruction-assembler |
- | |
6614 | db 'jna',76h |
- | |
6615 | dw conditional_jump-assembler |
- | |
6616 | db 'jnb',73h |
- | |
6617 | dw conditional_jump-assembler |
- | |
6618 | db 'jnc',73h |
- | |
6619 | dw conditional_jump-assembler |
- | |
6620 | db 'jne',75h |
- | |
6621 | dw conditional_jump-assembler |
- | |
6622 | db 'jng',7Eh |
- | |
6623 | dw conditional_jump-assembler |
- | |
6624 | db 'jnl',7Dh |
- | |
6625 | dw conditional_jump-assembler |
- | |
6626 | db 'jno',71h |
- | |
6627 | dw conditional_jump-assembler |
- | |
6628 | db 'jnp',7Bh |
- | |
6629 | dw conditional_jump-assembler |
- | |
6630 | db 'jns',79h |
- | |
6631 | dw conditional_jump-assembler |
- | |
6632 | db 'jnz',75h |
- | |
6633 | dw conditional_jump-assembler |
- | |
6634 | db 'jpe',7Ah |
- | |
6635 | dw conditional_jump-assembler |
- | |
6636 | db 'jpo',7Bh |
- | |
6637 | dw conditional_jump-assembler |
- | |
6638 | db 'lar',2 |
- | |
6639 | dw lar_instruction-assembler |
- | |
6640 | db 'lds',3 |
- | |
6641 | dw ls_instruction-assembler |
- | |
6642 | db 'lea',0 |
- | |
6643 | dw lea_instruction-assembler |
- | |
6644 | db 'les',0 |
- | |
6645 | dw ls_instruction-assembler |
- | |
6646 | db 'lfs',4 |
- | |
6647 | dw ls_instruction-assembler |
- | |
6648 | db 'lgs',5 |
- | |
6649 | dw ls_instruction-assembler |
- | |
6650 | db 'lsl',3 |
- | |
6651 | dw lar_instruction-assembler |
- | |
6652 | db 'lss',2 |
- | |
6653 | dw ls_instruction-assembler |
- | |
6654 | db 'ltr',3 |
- | |
6655 | dw pm_word_instruction-assembler |
- | |
6656 | db 'mov',0 |
- | |
6657 | dw mov_instruction-assembler |
- | |
6658 | db 'mul',4 |
- | |
6659 | dw single_operand_instruction-assembler |
- | |
6660 | db 'neg',3 |
- | |
6661 | dw single_operand_instruction-assembler |
- | |
6662 | db 'nop',90h |
- | |
6663 | dw simple_instruction-assembler |
- | |
6664 | db 'not',2 |
- | |
6665 | dw single_operand_instruction-assembler |
- | |
6666 | db 'org',0 |
- | |
6667 | dw org_directive-assembler |
- | |
6668 | db 'out',0 |
- | |
6669 | dw out_instruction-assembler |
- | |
6670 | db 'pop',0 |
- | |
6671 | dw pop_instruction-assembler |
- | |
6672 | db 'por',0EBh |
- | |
6673 | dw mmx_instruction-assembler |
- | |
6674 | db 'rcl',2 |
- | |
6675 | dw sh_instruction-assembler |
- | |
6676 | db 'rcr',3 |
- | |
6677 | dw sh_instruction-assembler |
- | |
6678 | db 'rep',0F3h |
- | |
6679 | dw prefix_instruction-assembler |
- | |
6680 | db 'ret',0C2h |
- | |
6681 | dw ret_instruction-assembler |
- | |
6682 | db 'rol',0 |
- | |
6683 | dw sh_instruction-assembler |
- | |
6684 | db 'ror',1 |
- | |
6685 | dw sh_instruction-assembler |
- | |
6686 | db 'rsm',0AAh |
- | |
6687 | dw simple_extended_instruction-assembler |
- | |
6688 | db 'sal',4 |
- | |
6689 | dw sh_instruction-assembler |
- | |
6690 | db 'sar',7 |
- | |
6691 | dw sh_instruction-assembler |
- | |
6692 | db 'sbb',18h |
- | |
6693 | dw basic_instruction-assembler |
- | |
6694 | db 'shl',4 |
- | |
6695 | dw sh_instruction-assembler |
- | |
6696 | db 'shr',5 |
- | |
6697 | dw sh_instruction-assembler |
- | |
6698 | db 'stc',0F9h |
- | |
6699 | dw simple_instruction-assembler |
- | |
6700 | db 'std',0FDh |
- | |
6701 | dw simple_instruction-assembler |
- | |
6702 | db 'sti',0FBh |
- | |
6703 | dw simple_instruction-assembler |
- | |
6704 | db 'str',1 |
- | |
6705 | dw pm_store_word_instruction-assembler |
- | |
6706 | db 'sub',28h |
- | |
6707 | dw basic_instruction-assembler |
- | |
6708 | db 'ud2',0Bh |
- | |
6709 | dw simple_extended_instruction-assembler |
- | |
6710 | db 'xor',30h |
- | |
6711 | dw basic_instruction-assembler |
- | |
6712 | db 0 |
- | |
6713 | instructions_4: |
- | |
6714 | db 'arpl',0 |
- | |
6715 | dw arpl_instruction-assembler |
- | |
6716 | db 'call',0 |
- | |
6717 | dw call_instruction-assembler |
- | |
6718 | db 'cdqe',98h |
- | |
6719 | dw simple_instruction_64bit-assembler |
- | |
6720 | db 'clts',6 |
- | |
6721 | dw simple_extended_instruction-assembler |
- | |
6722 | db 'cmps',0A6h |
- | |
6723 | dw cmps_instruction-assembler |
- | |
6724 | db 'cwde',98h |
- | |
6725 | dw simple_instruction_32bit-assembler |
- | |
6726 | db 'data',0 |
- | |
6727 | dw data_directive-assembler |
- | |
6728 | db 'else',0 |
- | |
6729 | dw else_directive-assembler |
- | |
6730 | db 'emms',77h |
- | |
6731 | dw simple_extended_instruction-assembler |
- | |
6732 | db 'fabs',100001b |
- | |
6733 | dw simple_fpu_instruction-assembler |
- | |
6734 | db 'fadd',0 |
- | |
6735 | dw basic_fpu_instruction-assembler |
- | |
6736 | db 'fbld',4 |
- | |
6737 | dw fbld_instruction-assembler |
- | |
6738 | db 'fchs',100000b |
- | |
6739 | dw simple_fpu_instruction-assembler |
- | |
6740 | db 'fcom',2 |
- | |
6741 | dw basic_fpu_instruction-assembler |
- | |
6742 | db 'fcos',111111b |
- | |
6743 | dw simple_fpu_instruction-assembler |
- | |
6744 | db 'fdiv',6 |
- | |
6745 | dw basic_fpu_instruction-assembler |
- | |
6746 | db 'feni',0E0h |
- | |
6747 | dw finit_instruction-assembler |
- | |
6748 | db 'fild',0 |
- | |
6749 | dw fild_instruction-assembler |
- | |
6750 | db 'fist',2 |
- | |
6751 | dw fild_instruction-assembler |
- | |
6752 | db 'fld1',101000b |
- | |
6753 | dw simple_fpu_instruction-assembler |
- | |
6754 | db 'fldz',101110b |
- | |
6755 | dw simple_fpu_instruction-assembler |
- | |
6756 | db 'fmul',1 |
- | |
6757 | dw basic_fpu_instruction-assembler |
- | |
6758 | db 'fnop',010000b |
- | |
6759 | dw simple_fpu_instruction-assembler |
- | |
6760 | db 'fsin',111110b |
- | |
6761 | dw simple_fpu_instruction-assembler |
- | |
6762 | db 'fstp',3 |
- | |
6763 | dw fld_instruction-assembler |
- | |
6764 | db 'fsub',4 |
- | |
6765 | dw basic_fpu_instruction-assembler |
- | |
6766 | db 'ftst',100100b |
- | |
6767 | dw simple_fpu_instruction-assembler |
- | |
6768 | db 'fxam',100101b |
- | |
6769 | dw simple_fpu_instruction-assembler |
- | |
6770 | db 'fxch',0 |
- | |
6771 | dw fxch_instruction-assembler |
- | |
6772 | db 'heap',0 |
- | |
6773 | dw heap_directive-assembler |
- | |
6774 | db 'idiv',7 |
- | |
6775 | dw single_operand_instruction-assembler |
- | |
6776 | db 'imul',0 |
- | |
6777 | dw imul_instruction-assembler |
- | |
6778 | db 'insb',6Ch |
- | |
6779 | dw simple_instruction-assembler |
- | |
6780 | db 'insd',6Dh |
- | |
6781 | dw simple_instruction_32bit-assembler |
- | |
6782 | db 'insw',6Dh |
- | |
6783 | dw simple_instruction_16bit-assembler |
- | |
6784 | db 'int1',0F1h |
- | |
6785 | dw simple_instruction-assembler |
- | |
6786 | db 'int3',0CCh |
- | |
6787 | dw simple_instruction-assembler |
- | |
6788 | db 'into',0CEh |
- | |
6789 | dw simple_instruction_except64-assembler |
- | |
6790 | db 'invd',8 |
- | |
6791 | dw simple_extended_instruction-assembler |
- | |
6792 | db 'iret',0CFh |
- | |
6793 | dw iret_instruction-assembler |
- | |
6794 | db 'jcxz',0E3h |
- | |
6795 | dw loop_instruction_16bit-assembler |
- | |
6796 | db 'jnae',72h |
- | |
6797 | dw conditional_jump-assembler |
- | |
6798 | db 'jnbe',77h |
- | |
6799 | dw conditional_jump-assembler |
- | |
6800 | db 'jnge',7Ch |
- | |
6801 | dw conditional_jump-assembler |
- | |
6802 | db 'jnle',7Fh |
- | |
6803 | dw conditional_jump-assembler |
- | |
6804 | db 'lahf',9Fh |
- | |
6805 | dw simple_instruction_except64-assembler |
- | |
6806 | db 'lgdt',2 |
- | |
6807 | dw lgdt_instruction-assembler |
- | |
6808 | db 'lidt',3 |
- | |
6809 | dw lgdt_instruction-assembler |
- | |
6810 | db 'lldt',2 |
- | |
6811 | dw pm_word_instruction-assembler |
- | |
6812 | db 'lmsw',16h |
- | |
6813 | dw pm_word_instruction-assembler |
- | |
6814 | db 'load',0 |
- | |
6815 | dw load_directive-assembler |
- | |
6816 | db 'lock',0F0h |
- | |
6817 | dw prefix_instruction-assembler |
- | |
6818 | db 'lods',0ACh |
- | |
6819 | dw lods_instruction-assembler |
- | |
6820 | db 'loop',0E2h |
- | |
6821 | dw loop_instruction-assembler |
- | |
6822 | db 'movd',0 |
- | |
6823 | dw movd_instruction-assembler |
- | |
6824 | db 'movq',0 |
- | |
6825 | dw movq_instruction-assembler |
- | |
6826 | db 'movs',0A4h |
- | |
6827 | dw movs_instruction-assembler |
- | |
6828 | db 'orpd',56h |
- | |
6829 | dw sse_pd_instruction-assembler |
- | |
6830 | db 'orps',56h |
- | |
6831 | dw sse_ps_instruction-assembler |
- | |
6832 | db 'outs',6Eh |
- | |
6833 | dw outs_instruction-assembler |
- | |
6834 | db 'pand',0DBh |
- | |
6835 | dw mmx_instruction-assembler |
- | |
6836 | db 'popa',61h |
- | |
6837 | dw simple_instruction_except64-assembler |
- | |
6838 | db 'popd',4 |
- | |
6839 | dw pop_instruction-assembler |
- | |
6840 | db 'popf',9Dh |
- | |
6841 | dw simple_instruction-assembler |
- | |
6842 | db 'popq',8 |
- | |
6843 | dw pop_instruction-assembler |
- | |
6844 | db 'popw',2 |
- | |
6845 | dw pop_instruction-assembler |
- | |
6846 | db 'push',0 |
- | |
6847 | dw push_instruction-assembler |
- | |
6848 | db 'pxor',0EFh |
- | |
6849 | dw mmx_instruction-assembler |
- | |
6850 | db 'repe',0F3h |
- | |
6851 | dw prefix_instruction-assembler |
- | |
6852 | db 'repz',0F3h |
- | |
6853 | dw prefix_instruction-assembler |
- | |
6854 | db 'retd',0C2h |
- | |
6855 | dw ret_instruction_32bit_except64-assembler |
- | |
6856 | db 'retf',0CAh |
- | |
6857 | dw retf_instruction-assembler |
- | |
6858 | db 'retn',0C2h |
- | |
6859 | dw ret_instruction-assembler |
- | |
6860 | db 'retq',0C2h |
- | |
6861 | dw ret_instruction_only64-assembler |
- | |
6862 | db 'retw',0C2h |
- | |
6863 | dw ret_instruction_16bit-assembler |
- | |
6864 | db 'sahf',9Eh |
- | |
6865 | dw simple_instruction_except64-assembler |
- | |
6866 | db 'salc',0D6h |
- | |
6867 | dw simple_instruction_except64-assembler |
- | |
6868 | db 'scas',0AEh |
- | |
6869 | dw stos_instruction-assembler |
- | |
6870 | db 'seta',97h |
- | |
6871 | dw set_instruction-assembler |
- | |
6872 | db 'setb',92h |
- | |
6873 | dw set_instruction-assembler |
- | |
6874 | db 'setc',92h |
- | |
6875 | dw set_instruction-assembler |
- | |
6876 | db 'sete',94h |
- | |
6877 | dw set_instruction-assembler |
- | |
6878 | db 'setg',9Fh |
- | |
6879 | dw set_instruction-assembler |
- | |
6880 | db 'setl',9Ch |
- | |
6881 | dw set_instruction-assembler |
- | |
6882 | db 'seto',90h |
- | |
6883 | dw set_instruction-assembler |
- | |
6884 | db 'setp',9Ah |
- | |
6885 | dw set_instruction-assembler |
- | |
6886 | db 'sets',98h |
- | |
6887 | dw set_instruction-assembler |
- | |
6888 | db 'setz',94h |
- | |
6889 | dw set_instruction-assembler |
- | |
6890 | db 'sgdt',0 |
- | |
6891 | dw lgdt_instruction-assembler |
- | |
6892 | db 'shld',0A4h |
- | |
6893 | dw shd_instruction-assembler |
- | |
6894 | db 'shrd',0ACh |
- | |
6895 | dw shd_instruction-assembler |
- | |
6896 | db 'sidt',1 |
- | |
6897 | dw lgdt_instruction-assembler |
- | |
6898 | db 'sldt',0 |
- | |
6899 | dw pm_store_word_instruction-assembler |
- | |
6900 | db 'smsw',14h |
- | |
6901 | dw pm_store_word_instruction-assembler |
- | |
6902 | db 'stos',0AAh |
- | |
6903 | dw stos_instruction-assembler |
- | |
6904 | db 'test',0 |
- | |
6905 | dw test_instruction-assembler |
- | |
6906 | db 'verr',4 |
- | |
6907 | dw pm_word_instruction-assembler |
- | |
6908 | db 'verw',5 |
- | |
6909 | dw pm_word_instruction-assembler |
- | |
6910 | db 'wait',9Bh |
- | |
6911 | dw simple_instruction-assembler |
- | |
6912 | db 'xadd',0C0h |
- | |
6913 | dw basic_486_instruction-assembler |
- | |
6914 | db 'xchg',0 |
- | |
6915 | dw xchg_instruction-assembler |
- | |
6916 | db 'xlat',0D7h |
- | |
6917 | dw xlat_instruction-assembler |
- | |
6918 | db 0 |
- | |
6919 | instructions_5: |
- | |
6920 | db 'addpd',58h |
- | |
6921 | dw sse_pd_instruction-assembler |
- | |
6922 | db 'addps',58h |
- | |
6923 | dw sse_ps_instruction-assembler |
- | |
6924 | db 'addsd',58h |
- | |
6925 | dw sse_sd_instruction-assembler |
- | |
6926 | db 'addss',58h |
- | |
6927 | dw sse_ss_instruction-assembler |
- | |
6928 | db 'align',0 |
- | |
6929 | dw align_directive-assembler |
- | |
6930 | db 'andpd',54h |
- | |
6931 | dw sse_pd_instruction-assembler |
- | |
6932 | db 'andps',54h |
- | |
6933 | dw sse_ps_instruction-assembler |
- | |
6934 | db 'bound',0 |
- | |
6935 | dw bound_instruction-assembler |
- | |
6936 | db 'break',0 |
- | |
6937 | dw break_directive-assembler |
- | |
6938 | db 'bswap',0 |
- | |
6939 | dw bswap_instruction-assembler |
- | |
6940 | db 'cmova',47h |
- | |
6941 | dw cmov_instruction-assembler |
- | |
6942 | db 'cmovb',42h |
- | |
6943 | dw cmov_instruction-assembler |
- | |
6944 | db 'cmovc',42h |
- | |
6945 | dw cmov_instruction-assembler |
- | |
6946 | db 'cmove',44h |
- | |
6947 | dw cmov_instruction-assembler |
- | |
6948 | db 'cmovg',4Fh |
- | |
6949 | dw cmov_instruction-assembler |
- | |
6950 | db 'cmovl',4Ch |
- | |
6951 | dw cmov_instruction-assembler |
- | |
6952 | db 'cmovo',40h |
- | |
6953 | dw cmov_instruction-assembler |
- | |
6954 | db 'cmovp',4Ah |
- | |
6955 | dw cmov_instruction-assembler |
- | |
6956 | db 'cmovs',48h |
- | |
6957 | dw cmov_instruction-assembler |
- | |
6958 | db 'cmovz',44h |
- | |
6959 | dw cmov_instruction-assembler |
- | |
6960 | db 'cmppd',0 |
- | |
6961 | dw cmppd_instruction-assembler |
- | |
6962 | db 'cmpps',0 |
- | |
6963 | dw cmpps_instruction-assembler |
- | |
6964 | db 'cmpsb',0A6h |
- | |
6965 | dw simple_instruction-assembler |
- | |
6966 | db 'cmpsd',0 |
- | |
6967 | dw cmpsd_instruction-assembler |
- | |
6968 | db 'cmpsq',0 |
- | |
6969 | dw simple_instruction_64bit-assembler |
- | |
6970 | db 'cmpss',0 |
- | |
6971 | dw cmpss_instruction-assembler |
- | |
6972 | db 'cmpsw',0A7h |
- | |
6973 | dw simple_instruction_16bit-assembler |
- | |
6974 | db 'cpuid',0A2h |
- | |
6975 | dw simple_extended_instruction-assembler |
- | |
6976 | db 'divpd',5Eh |
- | |
6977 | dw sse_pd_instruction-assembler |
- | |
6978 | db 'divps',5Eh |
- | |
6979 | dw sse_ps_instruction-assembler |
- | |
6980 | db 'divsd',5Eh |
- | |
6981 | dw sse_sd_instruction-assembler |
- | |
6982 | db 'divss',5Eh |
- | |
6983 | dw sse_ss_instruction-assembler |
- | |
6984 | db 'enter',0 |
- | |
6985 | dw enter_instruction-assembler |
- | |
6986 | db 'entry',0 |
- | |
6987 | dw entry_directive-assembler |
- | |
6988 | db 'extrn',0 |
- | |
6989 | dw extrn_directive-assembler |
- | |
6990 | db 'f2xm1',110000b |
- | |
6991 | dw simple_fpu_instruction-assembler |
- | |
6992 | db 'faddp',0 |
- | |
6993 | dw faddp_instruction-assembler |
- | |
6994 | db 'fbstp',6 |
- | |
6995 | dw fbld_instruction-assembler |
- | |
6996 | db 'fclex',0E2h |
- | |
6997 | dw finit_instruction-assembler |
- | |
6998 | db 'fcomi',0F0h |
- | |
6999 | dw fcomi_instruction-assembler |
- | |
7000 | db 'fcomp',3 |
- | |
7001 | dw basic_fpu_instruction-assembler |
- | |
7002 | db 'fdisi',0E1h |
- | |
7003 | dw finit_instruction-assembler |
- | |
7004 | db 'fdivp',7 |
- | |
7005 | dw faddp_instruction-assembler |
- | |
7006 | db 'fdivr',7 |
- | |
7007 | dw basic_fpu_instruction-assembler |
- | |
7008 | db 'femms',0Eh |
- | |
7009 | dw simple_extended_instruction-assembler |
- | |
7010 | db 'ffree',0 |
- | |
7011 | dw ffree_instruction-assembler |
- | |
7012 | db 'fiadd',0 |
- | |
7013 | dw fi_instruction-assembler |
- | |
7014 | db 'ficom',2 |
- | |
7015 | dw fi_instruction-assembler |
- | |
7016 | db 'fidiv',6 |
- | |
7017 | dw fi_instruction-assembler |
- | |
7018 | db 'fimul',1 |
- | |
7019 | dw fi_instruction-assembler |
- | |
7020 | db 'finit',0E3h |
- | |
7021 | dw finit_instruction-assembler |
- | |
7022 | db 'fistp',3 |
- | |
7023 | dw fild_instruction-assembler |
- | |
7024 | db 'fisub',4 |
- | |
7025 | dw fi_instruction-assembler |
- | |
7026 | db 'fldcw',5 |
- | |
7027 | dw fldcw_instruction-assembler |
- | |
7028 | db 'fldpi',101011b |
- | |
7029 | dw simple_fpu_instruction-assembler |
- | |
7030 | db 'fmulp',1 |
- | |
7031 | dw faddp_instruction-assembler |
- | |
7032 | db 'fneni',0E0h |
- | |
7033 | dw fninit_instruction-assembler |
- | |
7034 | db 'fprem',111000b |
- | |
7035 | dw simple_fpu_instruction-assembler |
- | |
7036 | db 'fptan',110010b |
- | |
7037 | dw simple_fpu_instruction-assembler |
- | |
7038 | db 'fsave',6 |
- | |
7039 | dw fsave_instruction-assembler |
- | |
7040 | db 'fsqrt',111010b |
- | |
7041 | dw simple_fpu_instruction-assembler |
- | |
7042 | db 'fstcw',7 |
- | |
7043 | dw fstcw_instruction-assembler |
- | |
7044 | db 'fstsw',0 |
- | |
7045 | dw fstsw_instruction-assembler |
- | |
7046 | db 'fsubp',5 |
- | |
7047 | dw faddp_instruction-assembler |
- | |
7048 | db 'fsubr',5 |
- | |
7049 | dw basic_fpu_instruction-assembler |
- | |
7050 | db 'fucom',4 |
- | |
7051 | dw ffree_instruction-assembler |
- | |
7052 | db 'fwait',9Bh |
- | |
7053 | dw simple_instruction-assembler |
- | |
7054 | db 'fyl2x',110001b |
- | |
7055 | dw simple_fpu_instruction-assembler |
- | |
7056 | db 'iretd',0CFh |
- | |
7057 | dw simple_instruction_32bit-assembler |
- | |
7058 | db 'iretq',0CFh |
- | |
7059 | dw simple_instruction_64bit-assembler |
- | |
7060 | db 'iretw',0CFh |
- | |
7061 | dw simple_instruction_16bit-assembler |
- | |
7062 | db 'jecxz',0E3h |
- | |
7063 | dw loop_instruction_32bit-assembler |
- | |
7064 | db 'jrcxz',0E3h |
- | |
7065 | dw loop_instruction_64bit-assembler |
- | |
7066 | db 'label',0 |
- | |
7067 | dw label_directive-assembler |
- | |
7068 | db 'lddqu',0 |
- | |
7069 | dw lddqu_instruction-assembler |
- | |
7070 | db 'leave',0C9h |
- | |
7071 | dw simple_instruction-assembler |
- | |
7072 | db 'lodsb',0ACh |
- | |
7073 | dw simple_instruction-assembler |
- | |
7074 | db 'lodsd',0ADh |
- | |
7075 | dw simple_instruction_32bit-assembler |
- | |
7076 | db 'lodsq',0ADh |
- | |
7077 | dw simple_instruction_64bit-assembler |
- | |
7078 | db 'lodsw',0ADh |
- | |
7079 | dw simple_instruction_16bit-assembler |
- | |
7080 | db 'loopd',0E2h |
- | |
7081 | dw loop_instruction_32bit-assembler |
- | |
7082 | db 'loope',0E1h |
- | |
7083 | dw loop_instruction-assembler |
- | |
7084 | db 'loopq',0E2h |
- | |
7085 | dw loop_instruction_64bit-assembler |
- | |
7086 | db 'loopw',0E2h |
- | |
7087 | dw loop_instruction_16bit-assembler |
- | |
7088 | db 'loopz',0E1h |
- | |
7089 | dw loop_instruction-assembler |
- | |
7090 | db 'maxpd',5Fh |
- | |
7091 | dw sse_pd_instruction-assembler |
- | |
7092 | db 'maxps',5Fh |
- | |
7093 | dw sse_ps_instruction-assembler |
- | |
7094 | db 'maxsd',5Fh |
- | |
7095 | dw sse_sd_instruction-assembler |
- | |
7096 | db 'maxss',5Fh |
- | |
7097 | dw sse_ss_instruction-assembler |
- | |
7098 | db 'minpd',5Dh |
- | |
7099 | dw sse_pd_instruction-assembler |
- | |
7100 | db 'minps',5Dh |
- | |
7101 | dw sse_ps_instruction-assembler |
- | |
7102 | db 'minsd',5Dh |
- | |
7103 | dw sse_sd_instruction-assembler |
- | |
7104 | db 'minss',5Dh |
- | |
7105 | dw sse_ss_instruction-assembler |
- | |
7106 | db 'movsb',0A4h |
- | |
7107 | dw simple_instruction-assembler |
- | |
7108 | db 'movsd',0 |
- | |
7109 | dw movsd_instruction-assembler |
- | |
7110 | db 'movsq',0A5h |
- | |
7111 | dw simple_instruction_64bit-assembler |
- | |
7112 | db 'movss',0 |
- | |
7113 | dw movss_instruction-assembler |
- | |
7114 | db 'movsw',0A5h |
- | |
7115 | dw simple_instruction_16bit-assembler |
- | |
7116 | db 'movsx',0BEh |
- | |
7117 | dw movx_instruction-assembler |
- | |
7118 | db 'movzx',0B6h |
- | |
7119 | dw movx_instruction-assembler |
- | |
7120 | db 'mulpd',59h |
- | |
7121 | dw sse_pd_instruction-assembler |
- | |
7122 | db 'mulps',59h |
- | |
7123 | dw sse_ps_instruction-assembler |
- | |
7124 | db 'mulsd',59h |
- | |
7125 | dw sse_sd_instruction-assembler |
- | |
7126 | db 'mulss',59h |
- | |
7127 | dw sse_ss_instruction-assembler |
- | |
7128 | db 'mwait',0C9h |
- | |
7129 | dw monitor_instruction-assembler |
- | |
7130 | db 'outsb',6Eh |
- | |
7131 | dw simple_instruction-assembler |
- | |
7132 | db 'outsd',6Fh |
- | |
7133 | dw simple_instruction_32bit-assembler |
- | |
7134 | db 'outsw',6Fh |
- | |
7135 | dw simple_instruction_16bit-assembler |
- | |
7136 | db 'paddb',0FCh |
- | |
7137 | dw mmx_instruction-assembler |
- | |
7138 | db 'paddd',0FEh |
- | |
7139 | dw mmx_instruction-assembler |
- | |
7140 | db 'paddq',0D4h |
- | |
7141 | dw mmx_instruction-assembler |
- | |
7142 | db 'paddw',0FDh |
- | |
7143 | dw mmx_instruction-assembler |
- | |
7144 | db 'pandn',0DFh |
- | |
7145 | dw mmx_instruction-assembler |
- | |
7146 | db 'pause',0 |
- | |
7147 | dw pause_instruction-assembler |
- | |
7148 | db 'pavgb',0E0h |
- | |
7149 | dw mmx_instruction-assembler |
- | |
7150 | db 'pavgw',0E3h |
- | |
7151 | dw mmx_instruction-assembler |
- | |
7152 | db 'pf2id',1Dh |
- | |
7153 | dw amd3dnow_instruction-assembler |
- | |
7154 | db 'pf2iw',1Ch |
- | |
7155 | dw amd3dnow_instruction-assembler |
- | |
7156 | db 'pfacc',0AEh |
- | |
7157 | dw amd3dnow_instruction-assembler |
- | |
7158 | db 'pfadd',9Eh |
- | |
7159 | dw amd3dnow_instruction-assembler |
- | |
7160 | db 'pfmax',0A4h |
- | |
7161 | dw amd3dnow_instruction-assembler |
- | |
7162 | db 'pfmin',94h |
- | |
7163 | dw amd3dnow_instruction-assembler |
- | |
7164 | db 'pfmul',0B4h |
- | |
7165 | dw amd3dnow_instruction-assembler |
- | |
7166 | db 'pfrcp',96h |
- | |
7167 | dw amd3dnow_instruction-assembler |
- | |
7168 | db 'pfsub',9Ah |
- | |
7169 | dw amd3dnow_instruction-assembler |
- | |
7170 | db 'pi2fd',0Dh |
- | |
7171 | dw amd3dnow_instruction-assembler |
- | |
7172 | db 'pi2fw',0Ch |
- | |
7173 | dw amd3dnow_instruction-assembler |
- | |
7174 | db 'popad',61h |
- | |
7175 | dw simple_instruction_32bit_except64-assembler |
- | |
7176 | db 'popaw',61h |
- | |
7177 | dw simple_instruction_16bit_except64-assembler |
- | |
7178 | db 'popfd',9Dh |
- | |
7179 | dw simple_instruction_32bit_except64-assembler |
- | |
7180 | db 'popfw',9Dh |
- | |
7181 | dw simple_instruction_16bit-assembler |
- | |
7182 | db 'popfq',9Dh |
- | |
7183 | dw simple_instruction_only64-assembler |
- | |
7184 | db 'pslld',0F2h |
- | |
7185 | dw mmx_ps_instruction-assembler |
- | |
7186 | db 'psllq',0F3h |
- | |
7187 | dw mmx_ps_instruction-assembler |
- | |
7188 | db 'psllw',0F1h |
- | |
7189 | dw mmx_ps_instruction-assembler |
- | |
7190 | db 'psrad',0E2h |
- | |
7191 | dw mmx_ps_instruction-assembler |
- | |
7192 | db 'psraw',0E1h |
- | |
7193 | dw mmx_ps_instruction-assembler |
- | |
7194 | db 'psrld',0D2h |
- | |
7195 | dw mmx_ps_instruction-assembler |
- | |
7196 | db 'psrlq',0D3h |
- | |
7197 | dw mmx_ps_instruction-assembler |
- | |
7198 | db 'psrlw',0D1h |
- | |
7199 | dw mmx_ps_instruction-assembler |
- | |
7200 | db 'psubb',0F8h |
- | |
7201 | dw mmx_instruction-assembler |
- | |
7202 | db 'psubd',0FAh |
- | |
7203 | dw mmx_instruction-assembler |
- | |
7204 | db 'psubq',0FBh |
- | |
7205 | dw mmx_instruction-assembler |
- | |
7206 | db 'psubw',0F9h |
- | |
7207 | dw mmx_instruction-assembler |
- | |
7208 | db 'pusha',60h |
- | |
7209 | dw simple_instruction_except64-assembler |
- | |
7210 | db 'pushd',4 |
- | |
7211 | dw push_instruction-assembler |
- | |
7212 | db 'pushf',9Ch |
- | |
7213 | dw simple_instruction-assembler |
- | |
7214 | db 'pushq',8 |
- | |
7215 | dw push_instruction-assembler |
- | |
7216 | db 'pushw',2 |
- | |
7217 | dw push_instruction-assembler |
- | |
7218 | db 'rcpps',53h |
- | |
7219 | dw sse_ps_instruction-assembler |
- | |
7220 | db 'rcpss',53h |
- | |
7221 | dw sse_ss_instruction-assembler |
- | |
7222 | db 'rdmsr',32h |
- | |
7223 | dw simple_extended_instruction-assembler |
- | |
7224 | db 'rdpmc',33h |
- | |
7225 | dw simple_extended_instruction-assembler |
- | |
7226 | db 'rdtsc',31h |
- | |
7227 | dw simple_extended_instruction-assembler |
- | |
7228 | db 'repne',0F2h |
- | |
7229 | dw prefix_instruction-assembler |
- | |
7230 | db 'repnz',0F2h |
- | |
7231 | dw prefix_instruction-assembler |
- | |
7232 | db 'retfd',0CAh |
- | |
7233 | dw ret_instruction_32bit-assembler |
- | |
7234 | db 'retfq',0CAh |
- | |
7235 | dw ret_instruction_64bit-assembler |
- | |
7236 | db 'retfw',0CAh |
- | |
7237 | dw ret_instruction_16bit-assembler |
- | |
7238 | db 'retnd',0C2h |
- | |
7239 | dw ret_instruction_32bit_except64-assembler |
- | |
7240 | db 'retnq',0C2h |
- | |
7241 | dw ret_instruction_only64-assembler |
- | |
7242 | db 'retnw',0C2h |
- | |
7243 | dw ret_instruction_16bit-assembler |
- | |
7244 | db 'scasb',0AEh |
- | |
7245 | dw simple_instruction-assembler |
- | |
7246 | db 'scasd',0AFh |
- | |
7247 | dw simple_instruction_32bit-assembler |
- | |
7248 | db 'scasq',0AFh |
- | |
7249 | dw simple_instruction_64bit-assembler |
- | |
7250 | db 'scasw',0AFh |
- | |
7251 | dw simple_instruction_16bit-assembler |
- | |
7252 | db 'setae',93h |
- | |
7253 | dw set_instruction-assembler |
- | |
7254 | db 'setbe',96h |
- | |
7255 | dw set_instruction-assembler |
- | |
7256 | db 'setge',9Dh |
- | |
7257 | dw set_instruction-assembler |
- | |
7258 | db 'setle',9Eh |
- | |
7259 | dw set_instruction-assembler |
- | |
7260 | db 'setna',96h |
- | |
7261 | dw set_instruction-assembler |
- | |
7262 | db 'setnb',93h |
- | |
7263 | dw set_instruction-assembler |
- | |
7264 | db 'setnc',93h |
- | |
7265 | dw set_instruction-assembler |
- | |
7266 | db 'setne',95h |
- | |
7267 | dw set_instruction-assembler |
- | |
7268 | db 'setng',9Eh |
- | |
7269 | dw set_instruction-assembler |
- | |
7270 | db 'setnl',9Dh |
- | |
7271 | dw set_instruction-assembler |
- | |
7272 | db 'setno',91h |
- | |
7273 | dw set_instruction-assembler |
- | |
7274 | db 'setnp',9Bh |
- | |
7275 | dw set_instruction-assembler |
- | |
7276 | db 'setns',99h |
- | |
7277 | dw set_instruction-assembler |
- | |
7278 | db 'setnz',95h |
- | |
7279 | dw set_instruction-assembler |
- | |
7280 | db 'setpe',9Ah |
- | |
7281 | dw set_instruction-assembler |
- | |
7282 | db 'setpo',9Bh |
- | |
7283 | dw set_instruction-assembler |
- | |
7284 | db 'stack',0 |
- | |
7285 | dw stack_directive-assembler |
- | |
7286 | db 'store',0 |
- | |
7287 | dw store_directive-assembler |
- | |
7288 | db 'stosb',0AAh |
- | |
7289 | dw simple_instruction-assembler |
- | |
7290 | db 'stosd',0ABh |
- | |
7291 | dw simple_instruction_32bit-assembler |
- | |
7292 | db 'stosq',0ABh |
- | |
7293 | dw simple_instruction_64bit-assembler |
- | |
7294 | db 'stosw',0ABh |
- | |
7295 | dw simple_instruction_16bit-assembler |
- | |
7296 | db 'subpd',5Ch |
- | |
7297 | dw sse_pd_instruction-assembler |
- | |
7298 | db 'subps',5Ch |
- | |
7299 | dw sse_ps_instruction-assembler |
- | |
7300 | db 'subsd',5Ch |
- | |
7301 | dw sse_sd_instruction-assembler |
- | |
7302 | db 'subss',5Ch |
- | |
7303 | dw sse_ss_instruction-assembler |
- | |
7304 | db 'times',0 |
- | |
7305 | dw times_directive-assembler |
- | |
7306 | db 'vmxon',6 |
- | |
7307 | dw vmxon_instruction-assembler |
- | |
7308 | db 'while',0 |
- | |
7309 | dw while_directive-assembler |
- | |
7310 | db 'wrmsr',30h |
- | |
7311 | dw simple_extended_instruction-assembler |
- | |
7312 | db 'xlatb',0D7h |
- | |
7313 | dw simple_instruction-assembler |
- | |
7314 | db 'xorpd',57h |
- | |
7315 | dw sse_pd_instruction-assembler |
- | |
7316 | db 'xorps',57h |
- | |
7317 | dw sse_ps_instruction-assembler |
- | |
7318 | db 0 |
- | |
7319 | instructions_6: |
- | |
7320 | db 'andnpd',55h |
- | |
7321 | dw sse_pd_instruction-assembler |
- | |
7322 | db 'andnps',55h |
- | |
7323 | dw sse_ps_instruction-assembler |
- | |
7324 | db 'cmovae',43h |
- | |
7325 | dw cmov_instruction-assembler |
- | |
7326 | db 'cmovbe',46h |
- | |
7327 | dw cmov_instruction-assembler |
- | |
7328 | db 'cmovge',4Dh |
- | |
7329 | dw cmov_instruction-assembler |
- | |
7330 | db 'cmovle',4Eh |
- | |
7331 | dw cmov_instruction-assembler |
- | |
7332 | db 'cmovna',46h |
- | |
7333 | dw cmov_instruction-assembler |
- | |
7334 | db 'cmovnb',43h |
- | |
7335 | dw cmov_instruction-assembler |
- | |
7336 | db 'cmovnc',43h |
- | |
7337 | dw cmov_instruction-assembler |
- | |
7338 | db 'cmovne',45h |
- | |
7339 | dw cmov_instruction-assembler |
- | |
7340 | db 'cmovng',4Eh |
- | |
7341 | dw cmov_instruction-assembler |
- | |
7342 | db 'cmovnl',4Dh |
- | |
7343 | dw cmov_instruction-assembler |
- | |
7344 | db 'cmovno',41h |
- | |
7345 | dw cmov_instruction-assembler |
- | |
7346 | db 'cmovnp',4Bh |
- | |
7347 | dw cmov_instruction-assembler |
- | |
7348 | db 'cmovns',49h |
- | |
7349 | dw cmov_instruction-assembler |
- | |
7350 | db 'cmovnz',45h |
- | |
7351 | dw cmov_instruction-assembler |
- | |
7352 | db 'cmovpe',4Ah |
- | |
7353 | dw cmov_instruction-assembler |
- | |
7354 | db 'cmovpo',4Bh |
- | |
7355 | dw cmov_instruction-assembler |
- | |
7356 | db 'comisd',2Fh |
- | |
7357 | dw comisd_instruction-assembler |
- | |
7358 | db 'comiss',2Fh |
- | |
7359 | dw comiss_instruction-assembler |
- | |
7360 | db 'fcmovb',0C0h |
- | |
7361 | dw fcmov_instruction-assembler |
- | |
7362 | db 'fcmove',0C8h |
- | |
7363 | dw fcmov_instruction-assembler |
- | |
7364 | db 'fcmovu',0D8h |
- | |
7365 | dw fcmov_instruction-assembler |
- | |
7366 | db 'fcomip',0F0h |
- | |
7367 | dw fcomip_instruction-assembler |
- | |
7368 | db 'fcompp',0 |
- | |
7369 | dw fcompp_instruction-assembler |
- | |
7370 | db 'fdivrp',6 |
- | |
7371 | dw faddp_instruction-assembler |
- | |
7372 | db 'ffreep',0 |
- | |
7373 | dw ffreep_instruction-assembler |
- | |
7374 | db 'ficomp',3 |
- | |
7375 | dw fi_instruction-assembler |
- | |
7376 | db 'fidivr',7 |
- | |
7377 | dw fi_instruction-assembler |
- | |
7378 | db 'fisttp',1 |
- | |
7379 | dw fild_instruction-assembler |
- | |
7380 | db 'fisubr',5 |
- | |
7381 | dw fi_instruction-assembler |
- | |
7382 | db 'fldenv',4 |
- | |
7383 | dw fldenv_instruction-assembler |
- | |
7384 | db 'fldl2e',101010b |
- | |
7385 | dw simple_fpu_instruction-assembler |
- | |
7386 | db 'fldl2t',101001b |
- | |
7387 | dw simple_fpu_instruction-assembler |
- | |
7388 | db 'fldlg2',101100b |
- | |
7389 | dw simple_fpu_instruction-assembler |
- | |
7390 | db 'fldln2',101101b |
- | |
7391 | dw simple_fpu_instruction-assembler |
- | |
7392 | db 'fnclex',0E2h |
- | |
7393 | dw fninit_instruction-assembler |
- | |
7394 | db 'fndisi',0E1h |
- | |
7395 | dw fninit_instruction-assembler |
- | |
7396 | db 'fninit',0E3h |
- | |
7397 | dw fninit_instruction-assembler |
- | |
7398 | db 'fnsave',6 |
- | |
7399 | dw fnsave_instruction-assembler |
- | |
7400 | db 'fnstcw',7 |
- | |
7401 | dw fldcw_instruction-assembler |
- | |
7402 | db 'fnstsw',0 |
- | |
7403 | dw fnstsw_instruction-assembler |
- | |
7404 | db 'format',0 |
- | |
7405 | dw format_directive-assembler |
- | |
7406 | db 'fpatan',110011b |
- | |
7407 | dw simple_fpu_instruction-assembler |
- | |
7408 | db 'fprem1',110101b |
- | |
7409 | dw simple_fpu_instruction-assembler |
- | |
7410 | db 'frstor',4 |
- | |
7411 | dw fnsave_instruction-assembler |
- | |
7412 | db 'frstpm',0E5h |
- | |
7413 | dw fninit_instruction-assembler |
- | |
7414 | db 'fscale',111101b |
- | |
7415 | dw simple_fpu_instruction-assembler |
- | |
7416 | db 'fsetpm',0E4h |
- | |
7417 | dw fninit_instruction-assembler |
- | |
7418 | db 'fstenv',6 |
- | |
7419 | dw fstenv_instruction-assembler |
- | |
7420 | db 'fsubrp',4 |
- | |
7421 | dw faddp_instruction-assembler |
- | |
7422 | db 'fucomi',0E8h |
- | |
7423 | dw fcomi_instruction-assembler |
- | |
7424 | db 'fucomp',5 |
- | |
7425 | dw ffree_instruction-assembler |
- | |
7426 | db 'fxsave',0 |
- | |
7427 | dw fxsave_instruction-assembler |
- | |
7428 | db 'haddpd',07Ch |
- | |
7429 | dw sse_pd_instruction-assembler |
- | |
7430 | db 'haddps',07Ch |
- | |
7431 | dw cvtpd2dq_instruction-assembler |
- | |
7432 | db 'hsubpd',07Dh |
- | |
7433 | dw sse_pd_instruction-assembler |
- | |
7434 | db 'hsubps',07Dh |
- | |
7435 | dw cvtpd2dq_instruction-assembler |
- | |
7436 | db 'invlpg',0 |
- | |
7437 | dw invlpg_instruction-assembler |
- | |
7438 | db 'lfence',0E8h |
- | |
7439 | dw fence_instruction-assembler |
- | |
7440 | db 'looped',0E1h |
- | |
7441 | dw loop_instruction_32bit-assembler |
- | |
7442 | db 'loopeq',0E1h |
- | |
7443 | dw loop_instruction_64bit-assembler |
- | |
7444 | db 'loopew',0E1h |
- | |
7445 | dw loop_instruction_16bit-assembler |
- | |
7446 | db 'loopne',0E0h |
- | |
7447 | dw loop_instruction-assembler |
- | |
7448 | db 'loopnz',0E0h |
- | |
7449 | dw loop_instruction-assembler |
- | |
7450 | db 'loopzd',0E1h |
- | |
7451 | dw loop_instruction_32bit-assembler |
- | |
7452 | db 'loopzq',0E1h |
- | |
7453 | dw loop_instruction_64bit-assembler |
- | |
7454 | db 'loopzw',0E1h |
- | |
7455 | dw loop_instruction_16bit-assembler |
- | |
7456 | db 'mfence',0F0h |
- | |
7457 | dw fence_instruction-assembler |
- | |
7458 | db 'movapd',28h |
- | |
7459 | dw movpd_instruction-assembler |
- | |
7460 | db 'movaps',28h |
- | |
7461 | dw movps_instruction-assembler |
- | |
7462 | db 'movdqa',66h |
- | |
7463 | dw movdq_instruction-assembler |
- | |
7464 | db 'movdqu',0F3h |
- | |
7465 | dw movdq_instruction-assembler |
- | |
7466 | db 'movhpd',16h |
- | |
7467 | dw movlpd_instruction-assembler |
- | |
7468 | db 'movhps',16h |
- | |
7469 | dw movlps_instruction-assembler |
- | |
7470 | db 'movlpd',12h |
- | |
7471 | dw movlpd_instruction-assembler |
- | |
7472 | db 'movlps',12h |
- | |
7473 | dw movlps_instruction-assembler |
- | |
7474 | db 'movnti',0C3h |
- | |
7475 | dw movnti_instruction-assembler |
- | |
7476 | db 'movntq',0E7h |
- | |
7477 | dw movntq_instruction-assembler |
- | |
7478 | db 'movsxd',63h |
- | |
7479 | dw movsxd_instruction-assembler |
- | |
7480 | db 'movupd',10h |
- | |
7481 | dw movpd_instruction-assembler |
- | |
7482 | db 'movups',10h |
- | |
7483 | dw movps_instruction-assembler |
- | |
7484 | db 'paddsb',0ECh |
- | |
7485 | dw mmx_instruction-assembler |
- | |
7486 | db 'paddsw',0EDh |
- | |
7487 | dw mmx_instruction-assembler |
- | |
7488 | db 'pextrw',0C5h |
- | |
7489 | dw pextrw_instruction-assembler |
- | |
7490 | db 'pfnacc',8Ah |
- | |
7491 | dw amd3dnow_instruction-assembler |
- | |
7492 | db 'pfsubr',0AAh |
- | |
7493 | dw amd3dnow_instruction-assembler |
- | |
7494 | db 'pinsrw',0C4h |
- | |
7495 | dw pinsrw_instruction-assembler |
- | |
7496 | db 'pmaxsw',0EEh |
- | |
7497 | dw mmx_instruction-assembler |
- | |
7498 | db 'pmaxub',0DEh |
- | |
7499 | dw mmx_instruction-assembler |
- | |
7500 | db 'pminsw',0EAh |
- | |
7501 | dw mmx_instruction-assembler |
- | |
7502 | db 'pminub',0DAh |
- | |
7503 | dw mmx_instruction-assembler |
- | |
7504 | db 'pmulhw',0E5h |
- | |
7505 | dw mmx_instruction-assembler |
- | |
7506 | db 'pmullw',0D5h |
- | |
7507 | dw mmx_instruction-assembler |
- | |
7508 | db 'psadbw',0F6h |
- | |
7509 | dw mmx_instruction-assembler |
- | |
7510 | db 'pshufd',66h |
- | |
7511 | dw pshufd_instruction-assembler |
- | |
7512 | db 'pshufw',0 |
- | |
7513 | dw pshufw_instruction-assembler |
- | |
7514 | db 'pslldq',111b |
- | |
7515 | dw ps_dq_instruction-assembler |
- | |
7516 | db 'psrldq',011b |
- | |
7517 | dw ps_dq_instruction-assembler |
- | |
7518 | db 'psubsb',0E8h |
- | |
7519 | dw mmx_instruction-assembler |
- | |
7520 | db 'psubsw',0E9h |
- | |
7521 | dw mmx_instruction-assembler |
- | |
7522 | db 'pswapd',0BBh |
- | |
7523 | dw amd3dnow_instruction-assembler |
- | |
7524 | db 'public',0 |
- | |
7525 | dw public_directive-assembler |
- | |
7526 | db 'pushad',60h |
- | |
7527 | dw simple_instruction_32bit_except64-assembler |
- | |
7528 | db 'pushaw',60h |
- | |
7529 | dw simple_instruction_16bit_except64-assembler |
- | |
7530 | db 'pushfd',9Ch |
- | |
7531 | dw simple_instruction_32bit_except64-assembler |
- | |
7532 | db 'pushfq',9Ch |
- | |
7533 | dw simple_instruction_only64-assembler |
- | |
7534 | db 'pushfw',9Ch |
- | |
7535 | dw simple_instruction_16bit-assembler |
- | |
7536 | db 'rdtscp',1 |
- | |
7537 | dw swapgs_instruction-assembler |
- | |
7538 | db 'repeat',0 |
- | |
7539 | dw repeat_directive-assembler |
- | |
7540 | db 'setalc',0D6h |
- | |
7541 | dw simple_instruction_except64-assembler |
- | |
7542 | db 'setnae',92h |
- | |
7543 | dw set_instruction-assembler |
- | |
7544 | db 'setnbe',97h |
- | |
7545 | dw set_instruction-assembler |
- | |
7546 | db 'setnge',9Ch |
- | |
7547 | dw set_instruction-assembler |
- | |
7548 | db 'setnle',9Fh |
- | |
7549 | dw set_instruction-assembler |
- | |
7550 | db 'sfence',0F8h |
- | |
7551 | dw fence_instruction-assembler |
- | |
7552 | db 'shufpd',0C6h |
- | |
7553 | dw sse_pd_instruction-assembler |
- | |
7554 | db 'shufps',0C6h |
- | |
7555 | dw sse_ps_instruction-assembler |
- | |
7556 | db 'sqrtpd',51h |
- | |
7557 | dw sse_pd_instruction-assembler |
- | |
7558 | db 'sqrtps',51h |
- | |
7559 | dw sse_ps_instruction-assembler |
- | |
7560 | db 'sqrtsd',51h |
- | |
7561 | dw sse_sd_instruction-assembler |
- | |
7562 | db 'sqrtss',51h |
- | |
7563 | dw sse_ss_instruction-assembler |
- | |
7564 | db 'sysret',07h |
- | |
7565 | dw simple_extended_instruction-assembler |
- | |
7566 | db 'swapgs',0 |
- | |
7567 | dw swapgs_instruction-assembler |
- | |
7568 | db 'vmcall',0C1h |
- | |
7569 | dw simple_vmx_instruction-assembler |
- | |
7570 | db 'vmread',0 |
- | |
7571 | dw vmread_instruction-assembler |
- | |
7572 | db 'vmxoff',0C4h |
- | |
7573 | dw simple_vmx_instruction-assembler |
- | |
7574 | db 'wbinvd',9 |
- | |
7575 | dw simple_extended_instruction-assembler |
- | |
7576 | db 0 |
- | |
7577 | instructions_7: |
- | |
7578 | db 'clflush',111b |
- | |
7579 | dw fxsave_instruction-assembler |
- | |
7580 | db 'cmovnae',42h |
- | |
7581 | dw cmov_instruction-assembler |
- | |
7582 | db 'cmovnbe',47h |
- | |
7583 | dw cmov_instruction-assembler |
- | |
7584 | db 'cmovnge',4Ch |
- | |
7585 | dw cmov_instruction-assembler |
- | |
7586 | db 'cmovnle',4Fh |
- | |
7587 | dw cmov_instruction-assembler |
- | |
7588 | db 'cmpeqpd',0 |
- | |
7589 | dw cmp_pd_instruction-assembler |
- | |
7590 | db 'cmpeqps',0 |
- | |
7591 | dw cmp_ps_instruction-assembler |
- | |
7592 | db 'cmpeqsd',0 |
- | |
7593 | dw cmp_sd_instruction-assembler |
- | |
7594 | db 'cmpeqss',0 |
- | |
7595 | dw cmp_ss_instruction-assembler |
- | |
7596 | db 'cmplepd',2 |
- | |
7597 | dw cmp_pd_instruction-assembler |
- | |
7598 | db 'cmpleps',2 |
- | |
7599 | dw cmp_ps_instruction-assembler |
- | |
7600 | db 'cmplesd',2 |
- | |
7601 | dw cmp_sd_instruction-assembler |
- | |
7602 | db 'cmpless',2 |
- | |
7603 | dw cmp_ss_instruction-assembler |
- | |
7604 | db 'cmpltpd',1 |
- | |
7605 | dw cmp_pd_instruction-assembler |
- | |
7606 | db 'cmpltps',1 |
- | |
7607 | dw cmp_ps_instruction-assembler |
- | |
7608 | db 'cmpltsd',1 |
- | |
7609 | dw cmp_sd_instruction-assembler |
- | |
7610 | db 'cmpltss',1 |
- | |
7611 | dw cmp_ss_instruction-assembler |
- | |
7612 | db 'cmpxchg',0B0h |
- | |
7613 | dw basic_486_instruction-assembler |
- | |
7614 | db 'display',0 |
- | |
7615 | dw display_directive-assembler |
- | |
7616 | db 'fcmovbe',0D0h |
- | |
7617 | dw fcmov_instruction-assembler |
- | |
7618 | db 'fcmovnb',0C0h |
- | |
7619 | dw fcomi_instruction-assembler |
- | |
7620 | db 'fcmovne',0C8h |
- | |
7621 | dw fcomi_instruction-assembler |
- | |
7622 | db 'fcmovnu',0D8h |
- | |
7623 | dw fcomi_instruction-assembler |
- | |
7624 | db 'fdecstp',110110b |
- | |
7625 | dw simple_fpu_instruction-assembler |
- | |
7626 | db 'fincstp',110111b |
- | |
7627 | dw simple_fpu_instruction-assembler |
- | |
7628 | db 'fnstenv',6 |
- | |
7629 | dw fldenv_instruction-assembler |
- | |
7630 | db 'frndint',111100b |
- | |
7631 | dw simple_fpu_instruction-assembler |
- | |
7632 | db 'fsincos',111011b |
- | |
7633 | dw simple_fpu_instruction-assembler |
- | |
7634 | db 'fucomip',0E8h |
- | |
7635 | dw fcomip_instruction-assembler |
- | |
7636 | db 'fucompp',0 |
- | |
7637 | dw fucompp_instruction-assembler |
- | |
7638 | db 'fxrstor',1 |
- | |
7639 | dw fxsave_instruction-assembler |
- | |
7640 | db 'fxtract',110100b |
- | |
7641 | dw simple_fpu_instruction-assembler |
- | |
7642 | db 'fyl2xp1',111001b |
- | |
7643 | dw simple_fpu_instruction-assembler |
- | |
7644 | db 'ldmxcsr',10b |
- | |
7645 | dw fxsave_instruction-assembler |
- | |
7646 | db 'loopned',0E0h |
- | |
7647 | dw loop_instruction_32bit-assembler |
- | |
7648 | db 'loopneq',0E0h |
- | |
7649 | dw loop_instruction_64bit-assembler |
- | |
7650 | db 'loopnew',0E0h |
- | |
7651 | dw loop_instruction_16bit-assembler |
- | |
7652 | db 'loopnzd',0E0h |
- | |
7653 | dw loop_instruction_32bit-assembler |
- | |
7654 | db 'loopnzq',0E0h |
- | |
7655 | dw loop_instruction_64bit-assembler |
- | |
7656 | db 'loopnzw',0E0h |
- | |
7657 | dw loop_instruction_16bit-assembler |
- | |
7658 | db 'monitor',0C8h |
- | |
7659 | dw monitor_instruction-assembler |
- | |
7660 | db 'movddup',12h |
- | |
7661 | dw sse_sd_instruction-assembler |
- | |
7662 | db 'movdq2q',0 |
- | |
7663 | dw movdq2q_instruction-assembler |
- | |
7664 | db 'movhlps',12h |
- | |
7665 | dw movhlps_instruction-assembler |
- | |
7666 | db 'movlhps',16h |
- | |
7667 | dw movhlps_instruction-assembler |
- | |
7668 | db 'movntdq',0E7h |
- | |
7669 | dw movntdq_instruction-assembler |
- | |
7670 | db 'movntpd',2Bh |
- | |
7671 | dw movntdq_instruction-assembler |
- | |
7672 | db 'movntps',2Bh |
- | |
7673 | dw movntps_instruction-assembler |
- | |
7674 | db 'movq2dq',0 |
- | |
7675 | dw movq2dq_instruction-assembler |
- | |
7676 | db 'paddusb',0DCh |
- | |
7677 | dw mmx_instruction-assembler |
- | |
7678 | db 'paddusw',0DDh |
- | |
7679 | dw mmx_instruction-assembler |
- | |
7680 | db 'pavgusb',0BFh |
- | |
7681 | dw amd3dnow_instruction-assembler |
- | |
7682 | db 'pcmpeqb',74h |
- | |
7683 | dw mmx_instruction-assembler |
- | |
7684 | db 'pcmpeqd',76h |
- | |
7685 | dw mmx_instruction-assembler |
- | |
7686 | db 'pcmpeqw',75h |
- | |
7687 | dw mmx_instruction-assembler |
- | |
7688 | db 'pcmpgtb',64h |
- | |
7689 | dw mmx_instruction-assembler |
- | |
7690 | db 'pcmpgtd',66h |
- | |
7691 | dw mmx_instruction-assembler |
- | |
7692 | db 'pcmpgtw',65h |
- | |
7693 | dw mmx_instruction-assembler |
- | |
7694 | db 'pfcmpeq',0B0h |
- | |
7695 | dw amd3dnow_instruction-assembler |
- | |
7696 | db 'pfcmpge',90h |
- | |
7697 | dw amd3dnow_instruction-assembler |
- | |
7698 | db 'pfcmpgt',0A0h |
- | |
7699 | dw amd3dnow_instruction-assembler |
- | |
7700 | db 'pfpnacc',8Eh |
- | |
7701 | dw amd3dnow_instruction-assembler |
- | |
7702 | db 'pfrsqrt',97h |
- | |
7703 | dw amd3dnow_instruction-assembler |
- | |
7704 | db 'pmaddwd',0F5h |
- | |
7705 | dw mmx_instruction-assembler |
- | |
7706 | db 'pmulhrw',0B7h |
- | |
7707 | dw amd3dnow_instruction-assembler |
- | |
7708 | db 'pmulhuw',0E4h |
- | |
7709 | dw mmx_instruction-assembler |
- | |
7710 | db 'pmuludq',0F4h |
- | |
7711 | dw mmx_instruction-assembler |
- | |
7712 | db 'pshufhw',0F3h |
- | |
7713 | dw pshufd_instruction-assembler |
- | |
7714 | db 'pshuflw',0F2h |
- | |
7715 | dw pshufd_instruction-assembler |
- | |
7716 | db 'psubusb',0D8h |
- | |
7717 | dw mmx_instruction-assembler |
- | |
7718 | db 'psubusw',0D9h |
- | |
7719 | dw mmx_instruction-assembler |
- | |
7720 | db 'rsqrtps',52h |
- | |
7721 | dw sse_ps_instruction-assembler |
- | |
7722 | db 'rsqrtss',52h |
- | |
7723 | dw sse_ss_instruction-assembler |
- | |
7724 | db 'section',0 |
- | |
7725 | dw section_directive-assembler |
- | |
7726 | db 'segment',0 |
- | |
7727 | dw segment_directive-assembler |
- | |
7728 | db 'stmxcsr',11b |
- | |
7729 | dw fxsave_instruction-assembler |
- | |
7730 | db 'syscall',05h |
- | |
7731 | dw simple_extended_instruction-assembler |
- | |
7732 | db 'sysexit',35h |
- | |
7733 | dw simple_extended_instruction-assembler |
- | |
7734 | db 'ucomisd',2Eh |
- | |
7735 | dw comisd_instruction-assembler |
- | |
7736 | db 'ucomiss',2Eh |
- | |
7737 | dw comiss_instruction-assembler |
- | |
7738 | db 'virtual',0 |
- | |
7739 | dw virtual_directive-assembler |
- | |
7740 | db 'vmclear',6 |
- | |
7741 | dw vmclear_instruction-assembler |
- | |
7742 | db 'vmptrld',6 |
- | |
7743 | dw vmx_instruction-assembler |
- | |
7744 | db 'vmptrst',7 |
- | |
7745 | dw vmx_instruction-assembler |
- | |
7746 | db 'vmwrite',0 |
- | |
7747 | dw vmwrite_instruction-assembler |
- | |
7748 | db 0 |
- | |
7749 | instructions_8: |
- | |
7750 | db 'addsubpd',0D0h |
- | |
7751 | dw sse_pd_instruction-assembler |
- | |
7752 | db 'addsubps',0D0h |
- | |
7753 | dw cvtpd2dq_instruction-assembler |
- | |
7754 | db 'cmpneqpd',4 |
- | |
7755 | dw cmp_pd_instruction-assembler |
- | |
7756 | db 'cmpneqps',4 |
- | |
7757 | dw cmp_ps_instruction-assembler |
- | |
7758 | db 'cmpneqsd',4 |
- | |
7759 | dw cmp_sd_instruction-assembler |
- | |
7760 | db 'cmpneqss',4 |
- | |
7761 | dw cmp_ss_instruction-assembler |
- | |
7762 | db 'cmpnlepd',6 |
- | |
7763 | dw cmp_pd_instruction-assembler |
- | |
7764 | db 'cmpnleps',6 |
- | |
7765 | dw cmp_ps_instruction-assembler |
- | |
7766 | db 'cmpnlesd',6 |
- | |
7767 | dw cmp_sd_instruction-assembler |
- | |
7768 | db 'cmpnless',6 |
- | |
7769 | dw cmp_ss_instruction-assembler |
- | |
7770 | db 'cmpnltpd',5 |
- | |
7771 | dw cmp_pd_instruction-assembler |
- | |
7772 | db 'cmpnltps',5 |
- | |
7773 | dw cmp_ps_instruction-assembler |
- | |
7774 | db 'cmpnltsd',5 |
- | |
7775 | dw cmp_sd_instruction-assembler |
- | |
7776 | db 'cmpnltss',5 |
- | |
7777 | dw cmp_ss_instruction-assembler |
- | |
7778 | db 'cmpordpd',7 |
- | |
7779 | dw cmp_pd_instruction-assembler |
- | |
7780 | db 'cmpordps',7 |
- | |
7781 | dw cmp_ps_instruction-assembler |
- | |
7782 | db 'cmpordsd',7 |
- | |
7783 | dw cmp_sd_instruction-assembler |
- | |
7784 | db 'cmpordss',7 |
- | |
7785 | dw cmp_ss_instruction-assembler |
- | |
7786 | db 'cvtdq2pd',0E6h |
- | |
7787 | dw cvtdq2pd_instruction-assembler |
- | |
7788 | db 'cvtdq2ps',5Bh |
- | |
7789 | dw sse_ps_instruction-assembler |
- | |
7790 | db 'cvtpd2dq',0E6h |
- | |
7791 | dw cvtpd2dq_instruction-assembler |
- | |
7792 | db 'cvtpd2pi',2Dh |
- | |
7793 | dw cvtpd2pi_instruction-assembler |
- | |
7794 | db 'cvtpd2ps',5Ah |
- | |
7795 | dw sse_pd_instruction-assembler |
- | |
7796 | db 'cvtpi2pd',2Ah |
- | |
7797 | dw cvtpi2pd_instruction-assembler |
- | |
7798 | db 'cvtpi2ps',2Ah |
- | |
7799 | dw cvtpi2ps_instruction-assembler |
- | |
7800 | db 'cvtps2dq',5Bh |
- | |
7801 | dw sse_pd_instruction-assembler |
- | |
7802 | db 'cvtps2pd',5Ah |
- | |
7803 | dw cvtps2pd_instruction-assembler |
- | |
7804 | db 'cvtps2pi',2Dh |
- | |
7805 | dw cvtps2pi_instruction-assembler |
- | |
7806 | db 'cvtsd2si',2Dh |
- | |
7807 | dw cvtsd2si_instruction-assembler |
- | |
7808 | db 'cvtsd2ss',5Ah |
- | |
7809 | dw sse_sd_instruction-assembler |
- | |
7810 | db 'cvtsi2sd',2Ah |
- | |
7811 | dw cvtsi2sd_instruction-assembler |
- | |
7812 | db 'cvtsi2ss',2Ah |
- | |
7813 | dw cvtsi2ss_instruction-assembler |
- | |
7814 | db 'cvtss2sd',5Ah |
- | |
7815 | dw sse_ss_instruction-assembler |
- | |
7816 | db 'cvtss2si',2Dh |
- | |
7817 | dw cvtss2si_instruction-assembler |
- | |
7818 | db 'fcmovnbe',0D0h |
- | |
7819 | dw fcomi_instruction-assembler |
- | |
7820 | db 'maskmovq',0 |
- | |
7821 | dw maskmovq_instruction-assembler |
- | |
7822 | db 'movmskpd',0 |
- | |
7823 | dw movmskpd_instruction-assembler |
- | |
7824 | db 'movmskps',0 |
- | |
7825 | dw movmskps_instruction-assembler |
- | |
7826 | db 'movshdup',16h |
- | |
7827 | dw cvtdq2pd_instruction-assembler |
- | |
7828 | db 'movsldup',12h |
- | |
7829 | dw cvtdq2pd_instruction-assembler |
- | |
7830 | db 'packssdw',6Bh |
- | |
7831 | dw mmx_instruction-assembler |
- | |
7832 | db 'packsswb',63h |
- | |
7833 | dw mmx_instruction-assembler |
- | |
7834 | db 'packuswb',67h |
- | |
7835 | dw mmx_instruction-assembler |
- | |
7836 | db 'pfrcpit1',0A6h |
- | |
7837 | dw amd3dnow_instruction-assembler |
- | |
7838 | db 'pfrcpit2',0B6h |
- | |
7839 | dw amd3dnow_instruction-assembler |
- | |
7840 | db 'pfrsqit1',0A7h |
- | |
7841 | dw amd3dnow_instruction-assembler |
- | |
7842 | db 'pmovmskb',0D7h |
- | |
7843 | dw pextrw_instruction-assembler |
- | |
7844 | db 'prefetch',0 |
- | |
7845 | dw amd_prefetch_instruction-assembler |
- | |
7846 | db 'sysenter',34h |
- | |
7847 | dw simple_extended_instruction-assembler |
- | |
7848 | db 'unpckhpd',15h |
- | |
7849 | dw sse_pd_instruction-assembler |
- | |
7850 | db 'unpckhps',15h |
- | |
7851 | dw sse_ps_instruction-assembler |
- | |
7852 | db 'unpcklpd',14h |
- | |
7853 | dw sse_pd_instruction-assembler |
- | |
7854 | db 'unpcklps',14h |
- | |
7855 | dw sse_ps_instruction-assembler |
- | |
7856 | db 'vmlaunch',0C2h |
- | |
7857 | dw simple_vmx_instruction-assembler |
- | |
7858 | db 'vmresume',0C3h |
- | |
7859 | dw simple_vmx_instruction-assembler |
- | |
7860 | db 0 |
- | |
7861 | instructions_9: |
- | |
7862 | db 'cmpxchg8b',8 |
- | |
7863 | dw cmpxchgx_instruction-assembler |
- | |
7864 | db 'cvttpd2dq',0E6h |
- | |
7865 | dw sse_pd_instruction-assembler |
- | |
7866 | db 'cvttpd2pi',2Ch |
- | |
7867 | dw cvtpd2pi_instruction-assembler |
- | |
7868 | db 'cvttps2dq',5Bh |
- | |
7869 | dw cvtdq2pd_instruction-assembler |
- | |
7870 | db 'cvttps2pi',2Ch |
- | |
7871 | dw cvtps2pi_instruction-assembler |
- | |
7872 | db 'cvttsd2si',2Ch |
- | |
7873 | dw cvtsd2si_instruction-assembler |
- | |
7874 | db 'cvttss2si',2Ch |
- | |
7875 | dw cvtss2si_instruction-assembler |
- | |
7876 | db 'prefetchw',1 |
- | |
7877 | dw amd_prefetch_instruction-assembler |
- | |
7878 | db 'punpckhbw',68h |
- | |
7879 | dw mmx_instruction-assembler |
- | |
7880 | db 'punpckhdq',6Ah |
- | |
7881 | dw mmx_instruction-assembler |
- | |
7882 | db 'punpckhwd',69h |
- | |
7883 | dw mmx_instruction-assembler |
- | |
7884 | db 'punpcklbw',60h |
- | |
7885 | dw mmx_instruction-assembler |
- | |
7886 | db 'punpckldq',62h |
- | |
7887 | dw mmx_instruction-assembler |
- | |
7888 | db 'punpcklwd',61h |
- | |
7889 | dw mmx_instruction-assembler |
- | |
7890 | db 0 |
- | |
7891 | instructions_10: |
- | |
7892 | db 'cmpunordpd',3 |
- | |
7893 | dw cmp_pd_instruction-assembler |
- | |
7894 | db 'cmpunordps',3 |
- | |
7895 | dw cmp_ps_instruction-assembler |
- | |
7896 | db 'cmpunordsd',3 |
- | |
7897 | dw cmp_sd_instruction-assembler |
- | |
7898 | db 'cmpunordss',3 |
- | |
7899 | dw cmp_ss_instruction-assembler |
- | |
7900 | db 'cmpxchg16b',16 |
- | |
7901 | dw cmpxchgx_instruction-assembler |
- | |
7902 | db 'loadall286',5 |
- | |
7903 | dw simple_extended_instruction-assembler |
- | |
7904 | db 'loadall386',7 |
- | |
7905 | dw simple_extended_instruction-assembler |
- | |
7906 | db 'maskmovdqu',0 |
- | |
7907 | dw maskmovdqu_instruction-assembler |
- | |
7908 | db 'prefetcht0',1 |
- | |
7909 | dw prefetch_instruction-assembler |
- | |
7910 | db 'prefetcht1',2 |
- | |
7911 | dw prefetch_instruction-assembler |
- | |
7912 | db 'prefetcht2',3 |
- | |
7913 | dw prefetch_instruction-assembler |
- | |
7914 | db 'punpckhqdq',6Dh |
- | |
7915 | dw sse_pd_instruction-assembler |
- | |
7916 | db 'punpcklqdq',6Ch |
- | |
7917 | dw sse_pd_instruction-assembler |
- | |
7918 | db 0 |
- | |
7919 | instructions_11: |
- | |
7920 | db 'prefetchnta',0 |
- | |
7921 | dw prefetch_instruction-assembler |
- | |
7922 | db 0 |
- | |
7923 | - |