实验一 四则运算
电工电子实验中心实验报告课程名称:计算机硬件技术基础 实验名称: 四则运算 姓名:葛华森 学号:031410425评定成绩:审阅教师:实验时间:2017.05.02 南京航空航天大学实验目的要求熟悉汇编语言程序的框架结构,掌握顺序结构的编程方法。熟悉Tddebug调试环境和Turbo Debugger的使用。理解X86内存数据的组织方式。理解基本的内存寻址方式。实验任务本实验要求完成32位无符号的加法、减法,16位乘以16位,32位除以16位的四则运算练习。实验代码(写出自己补全的代码,包含适当注释)DATA SEGMENT A DW 1234H,5678H ;被加数 B DW 0FEDCH,123AH ;加数 C DW 2 DUP(?) ;预留和 AD DW 0FEDCH,0BA98H ;被减数 BD DW 1234H,789AH ;减数 CD DW 2 DUP(?) ;预留差 A1 DW 0D678H ;被乘数 B1 DW 0012H ;乘数 C1 DW 2 DUP(?) ;预留积 A2 DW 5678H,0234H ;被除数 B2 DW 0F234H ;除数 C2 DW 2 DUP(?) ;预留商,余数DATA ENDSSTACK1 SEGMENT STACK DW 100 DUP(?) STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX ;标准序 MOV AX,A ADD AX,B MOV C,AX MOV AX,A+2 ADC AX,B+2 MOV C+2,AX ;32位加32位MOV AX,AD SUB AX,BD MOV CD,AX MOV AX,AD+2 SBB AX,BD+2 MOV CD+2,AX ;32位减32位 MOV AX,A1 MUL B1 MOV C1,AX MOV C1+2,DX ;16位乘以16位 MOV AX,A2 MOV DX,A2+2 DIV B2 MOV C2,AX MOV C2+2,DX ;32位除以16位 RETSTART ENDPCODE ENDS END START实验的运行数据及分析实验数据记录DS:000034H12H78H56H0DCH0FEH3AH12HDS:000810H11H0B3H68H0DCH0FEH98H0BAHDS:001034H12H9AH78H0A8H0ECH0FEH41HDS:001878H0D6H12H00H70H14H0FH00HDS:002078H56H34H02H34H0F2H54H02HDS:002868H75H数据分析:被加,加数123AFEDCH,和68B31110H被减数BA98FEDCH,减数789A1234H,差41FEECA8H被乘数D678H,乘数0012H,积000F1470H被除,除数0F234H,商0254H,余数7568H实验讨论及心得体会第一次使用emu8086,所以不太会操作,好在四则运算较为简单,通过加减乘除运算熟悉了该软件的使用,同时掌握了顺序结构的编写方法,理解了基本的内存寻址方式。