HUNAN UNIVERSITY 课程实习报告题目: 8086/8088指令系统学生姓名学生学号专业班级计算机科学与技术2班指导老师完成日期2013年4月21日一、实验目的利用debug工具的e和u功能找出8086/8088指令系统的指令格式中各种操作吗编码对应的指令功能,得到8086/8088操作吗从00~FF所对应的的汇编指令的名字。
并加以分析总结,形成你的关于8086/8088指令系统操作码编码方法的实验报告。
二、实验过程1、编写C++程序,生成debug的输入文件(shuru.txt)2、将shuru.txt复制到debug的根目录下,在debug界面输入如下指令“debug <shuru.txt >out.txt”,在debug的根目录下,生成了输出文本文件out.txt。
打开out.txt,对256条记录进行整理,如下所示。
3、固定前两位为00,将第二字节从00变为ff,观察汇编指令变化。
编写C++程序如下:4、将shuru2.txt复制到debug的根目录下,在debug界面输入如下指令“debug <shuru.txt >out2.txt”,在debug的根目录下,生成了输出文本文件out2.txt。
打开out2.txt,对256条记录进行分析。
三、256条记录指令码汇编指令------------------------------------------------------------- 0B76:0100 0000 ADD [BX+SI],AL0B76:0100 0100 ADD [BX+SI],AX0B76:0100 0200 ADD AL,[BX+SI]0B76:0100 0300 ADD AX,[BX+SI]0B76:0100 0400 ADD AL,000B76:0100 050000 ADD AX,00000B76:0100 06 PUSH ES0B76:0100 07 POP ES0B76:0100 0800 OR [BX+SI],AL0B76:0100 0900 OR [BX+SI],AX0B76:0100 0A00 OR AL,[BX+SI]0B76:0100 0B00 OR AX,[BX+SI]0B76:0100 0C00 OR AL,000B76:0100 0D0000 OR AX,00000B76:0100 0E PUSH CS0B76:0100 0F DB 0F0B76:0100 1000 ADC [BX+SI],AL0B76:0100 1100 ADC [BX+SI],AX0B76:0100 1200 ADC AL,[BX+SI]0B76:0100 1300 ADC AX,[BX+SI]0B76:0100 1400 ADC AL,000B76:0100 150000 ADC AX,00000B76:0100 16 PUSH SS0B76:0100 17 POP SS0B76:0100 1800 SBB [BX+SI],AL0B76:0100 1900 SBB [BX+SI],AX0B76:0100 1A00 SBB AL,[BX+SI]0B76:0100 1B00 SBB AX,[BX+SI]0B76:0100 1C00 SBB AL,000B76:0100 1D0000 SBB AX,00000B76:0100 1E PUSH DS0B76:0100 1F POP DS0B76:0100 2000 AND [BX+SI],AL0B76:0100 2100 AND [BX+SI],AX0B76:0100 2200 AND AL,[BX+SI]0B76:0100 2300 AND AX,[BX+SI]0B76:0100 2400 AND AL,000B76:0100 250000 AND AX,00000B76:0100 26 ES:0B76:0100 27 DAA0B76:0100 2800 SUB [BX+SI],AL 0B76:0100 2900 SUB [BX+SI],AX 0B76:0100 2A00 SUB AL,[BX+SI] 0B76:0100 2B00 SUB AX,[BX+SI] 0B76:0100 2C00 SUB AL,000B76:0100 2D0000 SUB AX,00000B76:0100 2E CS:0B76:0100 2F DAS0B76:0100 3000 XOR [BX+SI],AL 0B76:0100 3100 XOR [BX+SI],AX 0B76:0100 3200 XOR AL,[BX+SI] 0B76:0100 3300 XOR AX,[BX+SI] 0B76:0100 3400 XOR AL,000B76:0100 350000 XOR AX,00000B76:0100 36 SS:0B76:0100 37 AAA0B76:0100 3800 CMP [BX+SI],AL 0B76:0100 3900 CMP [BX+SI],AX 0B76:0100 3A00 CMP AL,[BX+SI] 0B76:0100 3B00 CMP AX,[BX+SI] 0B76:0100 3C00 CMP AL,000B76:0100 3D0000 CMP AX,00000B76:0100 3E DS:0B76:0100 3F AAS0B76:0100 40 INC AX0B76:0100 41 INC CX0B76:0100 42 INC DX0B76:0100 43 INC BX0B76:0100 44 INC SP0B76:0100 45 INC BP0B76:0100 46 INC SI0B76:0100 47 INC DI0B76:0100 48 DEC AX0B76:0100 49 DEC CX0B76:0100 4A DEC DX0B76:0100 4B DEC BX0B76:0100 4C DEC SP0B76:0100 4D DEC BP0B76:0100 4E DEC SI0B76:0100 4F DEC DI0B76:0100 50 PUSH AX0B76:0100 51 PUSH CX0B76:0100 52 PUSH DX 0B76:0100 53 PUSH BX 0B76:0100 54 PUSH SP0B76:0100 55 PUSH BP0B76:0100 56 PUSH SI0B76:0100 57 PUSH DI0B76:0100 58 POP AX 0B76:0100 59 POP CX 0B76:0100 5A POP DX 0B76:0100 5B POP BX 0B76:0100 5C POP SP0B76:0100 5D POP BP0B76:0100 5E POP SI0B76:0100 5F POP DI0B76:0100 60 DB 600B76:0100 61 DB 610B76:0100 62 DB 620B76:0100 63 DB 630B76:0100 64 DB 640B76:0100 65 DB 650B76:0100 66 DB 660B76:0100 67 DB 670B76:0100 68 DB 680B76:0100 69 DB 690B76:0100 6A DB 6A0B76:0100 6B DB 6B0B76:0100 6C DB 6C0B76:0100 6D DB 6D0B76:0100 6E DB 6E0B76:0100 6F DB 6F0B76:0100 7000 JO 01020B76:0100 7100 JNO 0102 0B76:0100 7200 JB 01020B76:0100 7300 JNB 0102 0B76:0100 7400 JZ 01020B76:0100 7500 JNZ 0102 0B76:0100 7600 JBE 0102 0B76:0100 7700 JA 01020B76:0100 7800 JS 01020B76:0100 7900 JNS 0102 0B76:0100 7A00 JPE 0102 0B76:0100 7B00 JPO 0102 0B76:0100 7C00 JL 01020B76:0100 7D00 JGE 01020B76:0100 7E00 JLE 01020B76:0100 7F00 JG 01020B76:0100 800000 ADD BYTE PTR [BX+SI],000B76:0100 81000000 ADD WORD PTR [BX+SI],0000 0B76:0100 820000 ADD BYTE PTR [BX+SI],000B76:0100 830000 ADD WORD PTR [BX+SI],+00 0B76:0100 8400 TEST AL,[BX+SI]0B76:0100 8500 TEST AX,[BX+SI]0B76:0100 8600 XCHG AL,[BX+SI]0B76:0100 8700 XCHG AX,[BX+SI]0B76:0100 8800 MOV [BX+SI],AL0B76:0100 8900 MOV [BX+SI],AX0B76:0100 8A00 MOV AL,[BX+SI]0B76:0100 8B00 MOV AX,[BX+SI]0B76:0100 8C00 MOV [BX+SI],ES0B76:0100 8D00 LEA AX,[BX+SI]0B76:0100 8E00 MOV ES,[BX+SI]0B76:0100 8F00 POP [BX+SI]0B76:0100 90 NOP0B76:0100 91 XCHG CX,AX0B76:0100 92 XCHG DX,AX0B76:0100 93 XCHG BX,AX0B76:0100 94 XCHG SP,AX0B76:0100 95 XCHG BP,AX0B76:0100 96 XCHG SI,AX0B76:0100 97 XCHG DI,AX0B76:0100 98 CBW0B76:0100 99 CWD0B76:0100 9A00000000 CALL 0000:00000B76:0100 9B WAIT0B76:0100 9C PUSHF0B76:0100 9D POPF0B76:0100 9E SAHF0B76:0100 9F LAHF0B76:0100 A00000 MOV AL,[0000]0B76:0100 A10000 MOV AX,[0000]0B76:0100 A20000 MOV [0000],AL0B76:0100 A30000 MOV [0000],AX0B76:0100 A4 MOVSB0B76:0100 A5 MOVSW0B76:0100 A6 CMPSB0B76:0100 A7 CMPSW0B76:0100 A800 TEST AL,000B76:0100 A90000 TEST AX,00000B76:0100 AA STOSB0B76:0100 AB STOSW0B76:0100 AC LODSB0B76:0100 AD LODSW0B76:0100 AE SCASB0B76:0100 AF SCASW0B76:0100 B000 MOV AL,000B76:0100 B100 MOV CL,000B76:0100 B200 MOV DL,000B76:0100 B300 MOV BL,000B76:0100 B400 MOV AH,000B76:0100 B500 MOV CH,000B76:0100 B600 MOV DH,000B76:0100 B700 MOV BH,000B76:0100 B80000 MOV AX,00000B76:0100 B90000 MOV CX,00000B76:0100 BA0000 MOV DX,00000B76:0100 BB0000 MOV BX,00000B76:0100 BC0000 MOV SP,00000B76:0100 BD0000 MOV BP,00000B76:0100 BE0000 MOV SI,00000B76:0100 BF0000 MOV DI,00000B76:0100 C0 DB C00B76:0100 C1 DB C10B76:0100 C20000 RET 00000B76:0100 C3 RET0B76:0100 C400 LES AX,[BX+SI]0B76:0100 C500 LDS AX,[BX+SI]0B76:0100 C60000 MOV BYTE PTR [BX+SI],000B76:0100 C7000000 MOV WORD PTR [BX+SI],0000 0B76:0100 C8 DB C80B76:0100 C9 DB C90B76:0100 CA0000 RETF 00000B76:0100 CB RETF0B76:0100 CC INT 30B76:0100 CD00 INT 000B76:0100 CE INTO0B76:0100 CF IRET0B76:0100 D000 ROL BYTE PTR [BX+SI],10B76:0100 D100 ROL WORD PTR [BX+SI],10B76:0100 D200 ROL BYTE PTR [BX+SI],CL0B76:0100 D300 ROL WORD PTR [BX+SI],CL0B76:0100 D400 AAM 000B76:0100 D500 AAD 000B76:0100 D6 DB D60B76:0100 D7 XLAT0B76:0100 D800 FADD DWORD PTR [BX+SI] 0B76:0100 D900 FLD DWORD PTR [BX+SI]0B76:0100 DA00 FIADD DWORD PTR [BX+SI] 0B76:0100 DB00 FILD D WORD PTR [BX+SI]0B76:0100 DC00 FADD QWORD PTR [BX+SI] 0B76:0100 DD00 FLD QWORD PTR [BX+SI]0B76:0100 DE00 FIADD WORD PTR [BX+SI] 0B76:0100 DF00 FILD W ORD PTR [BX+SI]0B76:0100 E000 LOOPNZ 01020B76:0100 E100 LOOPZ 01020B76:0100 E200 LOOP 01020B76:0100 E300 JCXZ 01020B76:0100 E400 IN AL,000B76:0100 E500 IN AX,000B76:0100 E600 OUT 00,AL0B76:0100 E700 OUT 00,AX0B76:0100 E80000 CALL 01030B76:0100 E90000 JMP 01030B76:0100 EA00000000 JMP 0000:00000B76:0100 EB00 JMP 01020B76:0100 EC IN AL,DX0B76:0100 ED IN AX,DX0B76:0100 EE OUT DX,AL0B76:0100 EF OUT DX,AX0B76:0100 F0 LOCK0B76:0100 F1 DB F10B76:0100 F2 REPNZ0B76:0100 F3 REPZ0B76:0100 F4 HLT0B76:0100 F5 CMC0B76:0100 F60000 TEST BYTE PTR [BX+SI],000B76:0100 F7000000 TEST WORD PTR [BX+SI],0000 0B76:0100 F8 CLC0B76:0100 F9 STC0B76:0100 FA CLI0B76:0100 FB STI0B76:0100 FC CLD0B76:0100 FD STD0B76:0100 FE00 INC BYTE PTR [BX+SI]0B76:0100 FF00 INC WORD PTR [BX+SI]三、8086/8088指令系统操作码编码方法8086/8088 指令系统采用了一种灵活的,由1~6 个字节组成的变字长的指令格式,包括操作码、寻址方式以及操作数3 部分。