1、三、实验设备 PC机一台 四、实验准备 1) 分析题目,将程序中的原始数据和最终结果的存取方法确定好。 2) 画出流程图。 3) 写出源程序。 4) 对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。五、实验步骤 1) 输入源程序。 2) 汇编、连接程序,生成 .EXE文件,执行文件,检查结果。六、实验报告的要求 1) 列出源程序,说明程序的基本结构,包括程序中各部分的功能。 2) 说明程序中各部分所用的算法。3)说明主要符号和所用到寄存器的功能。 4) 总结为什么在设计分支程序时必须解决三个问题:判断、转向和定标号。5) 说明标志位CF、SF和OF的意义。 6) 上机调试
2、过程中遇到的问题是如何解决的。 7) 对调试源程序的结果进行分析。实验1-1 源程序:DATA SEGMENT BUF1 DW 932AH ;(以十六进制表示一个数的原码,包括符号位) BUF2 DW ? BUF3 DW ?DATA ENDSSTACK1 SEGMENT PARA STACK DW 20H DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,BUF1 MOV BX,AX AND AX,0FFFFH JNS L ;sf表示
3、符号标志位,若最高位大于7时,则为负,该命令判断是否为负,为负则求反(加一),为正则原样输出 NEG AX XOR BX,0FFFFH OR AX,8000H ;保持符号位不变 OR BX,8000H L:MOV BUF2,BX MOV BUF3,AX PUSH AX PUSH BX MOV CX,2LOP:POP BX;将结果每一位通过循环移位显示在屏幕上 PUSH CX MOV CX,4 LP:PUSH CX MOV CL,4 ROL BX,CL MOV DL,BL AND DL,0FH CMP DL,0AH JB L2 ADD DL,07H L2:ADD DL,30H MOV AH,02
4、H INT 21H POP CX LOOP LP MOV DL, LOOP LOP MOV AH,4CHCODE ENDSEND START运行结果: 屏幕上显示的是BUF1数的反码和补码(十六进制,包括符号位)。 调试时发现结果显示成乱码,经过研究程序代码发现如果数字在A到F之间,则需要将内存数值加37。实验1-2data segment A dw 00ED1h B dw 0BDE9h data endsstack1 segment para stack dw 20h dup(0)stack1 endscode segment assume cs:code,ds:data,ss:stack1
5、,es:datastart: MOV BX,A ;(把A存储的单元放入BX寄存器中) MOV AX,B;(把B存储的单元放入AX寄存器中) ADD BX,AX JC L0;cf是无符号的进位,当两数相加大于0ffffh,产生进位 MOV A,BX L0:MOV DX,BX;显示相加结果 AND DX,0F000H MOV CL,12 SHR DX,CL CMP DX,0AH JB L1 ADD DX,7H L1:ADD DX,30H MOV DX,BX AND DX,0F00H MOV CL,8 AND DX,0F0H JB L3 L3: AND DX,0FH JB L4 L4: mov ah
6、,4ch int 21hcode endsend start实验1-3源代码: BUF DB 03EH,060H,93H MAX DB 00H AND AX,0000H MOV AL,BUF MOV MAX,AL MOV BL,BUF+1 CMP MAX,BL;找到最大的数 JAE L1 MOV MAX,BLMOV BL,BUF+2 CMP MAX,BL JAE L2;显示最大的数AND DX,0000H MOV DL,MAX AND DL,0F0H SHR DL,CL ADD DL,7H实验1-4 BUF DB -34H,3AH,-43H;转换成补码 MOV AL,BUF;通过对所有的数取阶
7、码比较大小 ADD AL,80H ADD BL,80H JAE L2 SUB DL,80H;包含有cmp功能,对最大的数减去80h(取回原码) JAE L3 MOV BL,DL-;如果是负数显示符号 NEG DL;求补(针对带符号数)MOV BL,DL; ADD DL,30H实验1-5 BUF DB 10 DUP(0) BF DB 00011110B,11111111B,6 DUP(0),00110000B,00000001BSTACK1 MOV AX,100H MOV ES,AX MOV CX,10 MOV DI,0 MOV SI,9MOV BX,CX ;MOV AL,BF+BX-1 MOV AL,ES:-1BX AND AL,0FFH;mov不影响标志位 JP L1 ;pf为奇偶标志位,当位数为偶数时为1 LEA BX,BUF ADD BX,DI MOV BX,AL INC DI JMP L2MOV BUF+SI,AL DEC SILOOP LOP MOV AL,BUF+BX-1 MOV ES:-1BX,AL1、对bf进行检验,再存入buf2、对指定的内存单元进行检验,存回指定的内存单元
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1