1、 本科实验报告实验名称: 分支和循环实验 课程名称:CPU 与汇编语言和选修实验实验时间:2017.10.24任课教师:高平实验地点:10-102实验教师:高平学生姓名:xx实验类型: 原理验证 综合设计 自主创新学 号 /班 级 :xx组 号:学 院:信息与电子学院同组搭档:专 业: 信号与信息处理 成 绩:1、实验目的1)掌握比较指令;2)理解条件转移和无条件转移指令的区别;3)掌握单分支、双分支、多分支的程序设计方法;4)掌握循环程序设计方法。2、实验内容内容一程序代码:DATAS SEGMENTBUF DB 12H,98H,45H,64H,78H,36H,55H,44H,0ABH,0C
2、FHCOUNT EQU $-BUFNUM1 DB 0NUM2 DB 0BUF1 DB 00,00BUF2 DB 00,00DATAS ENDSSTACKS SEGMENT STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV CX,COUNTMOV SI,0MOV DI,0L: MOV AL,BUFSICMP AL,0JG L1INC NUM2CBWADC WORD PTR BUF2DI,AXJMP L2L1:INC NUM1CBWADC WORD PTR BUF1DI,
3、AXL2:INC SILOOP LMOV AH,4CHINT 21HCODES ENDSEND START程序运行结果:和 个数正数 0202 7负数 FF12 3内容二实验代码:DATAS SEGMENTBUF DB 12H,98H,45H,64H,78H,36H,55H,44H,0ABH,0CFHCOUNT EQU $-BUFMAX DB 0MIN DB 0DATAS ENDSSTACKS SEGMENT STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV CX,C
4、OUNTMOV SI,0MOV AL,BUFSIMOV MAX,ALL: INC SIMOV AL,BUFSICMP AL,MAXJL L1MOV MAX,ALL1:DEC CX JNZ LMOV CX,COUNTMOV SI,0MOV AL,BUFSIMOV MIN,ALM:INC SIMOV AL,BUFSICMP AL,MINJA M1MOV MIN,ALM1:DEC CXJNZ MMOV AH,4CHINT 21HCODES ENDSEND START程序运行结果:所以可得有符号数的最大值为 78H,无符号数的最小值 12H。内容三实验代码:DATAS SEGMENTBUF1 DB C
5、HAR,0DH,0AH,$BUF2 DB char,0DH,0AH,$DATAS ENDSSTACKS SEGMENT STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV AH,1HINT 21HCMP AL,39HJLE L1CMP AL,5AHJLE L2LEA DX, BUF2MOV AH,09HINT 21HJMP LL1:MOV DL,ALMOV AH,2INT 21HJMP LL2:LEA DX, BUF1MOV AH,09HINT 21HJMP LL:MO
6、V AH,4CHINT 21HCODES ENDSEND START代码运行结果:输入数字 5 时输出 5输入大写字符 Q 时输出 CHAR输入小写字符 q 时输出 char内容四实验代码:DATAS SEGMENTBUF DB 12H,98H,0H,64H,51H,46H,62H,0H,0ACH,0AFHCOUNT EQU $-BUFA1 DB 0A2 DB 0A3 DB 0DATAS ENDSSTACKS SEGMENT STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV CX,COUNTMOV SI,0L: MOV AL,BUFSICMP AL,0JGE L1INC A2JMP L2L1:CMP AL,0JG L3INC A3JMP L2L3:INC A1L2:INC SILOOP LMOV AH,4CHINT 21HCODES ENDSEND START程序运行结果:自定义的 BUF 缓存区中分别有正数 5 个,负数 3 个,零 2 个。