微机原理:顺序、分支、循环、子程序设计.docx
《微机原理:顺序、分支、循环、子程序设计.docx》由会员分享,可在线阅读,更多相关《微机原理:顺序、分支、循环、子程序设计.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除公司名称实验二 顺序、分支、循环、子程序设计微机原理上机实验作者姓名日期预习报告零、相关知识1,LEA指令和MOV指令的区别一、顺序结构计算m*n-w,最终结果保存在AX其中m=12, n=12, w=4最终结果为AX=008CH=140Dname sequence strctureorg 100hMOV AX, 1000HMOV DS, AXMOV SI, 1000H MOV SI, 12MOV SI+1, 12MOV SI+2, 4MOV AL, SIMOV BL, SI+1MUL BLMOV BX, 0MOV BL, SI+2SUB AX,
2、 BX HLT二、分支结构在DS数据段偏移地址为DATA开始的顺序80个单元中,存放着某班80个同学的微机原理考试成绩。现欲编程序统计=90、8970、6960和60分的人数,并将统计的结果存放在当前数据段偏移地址为BUFFER的顺序单元中name “branch structure”START:MOV DX, 0000HMOV BX, 0000HMOV CX, 80LEA SI, DATALEA DI, BUFFERGOON:MOV AL, SICMP AL, 90JC NEXT3INC DHJMP STORNEXT3:CMP AL, 70JC NEXT5INC DLJMP STORNEXT
3、5:CMP AL, 60JC NEXT7INC BHJMP STORNEXT7:INC BLSTOR:INC SILOOP GOONMOV DI, DHMOV DI+1, DLMOV DI+2, BHMOV DI+3, BLHLT三、循环结构在DS所决定的数据段,从偏移地址BUFFER开始顺序存放100个无符号16位数。现欲编程序将这100个数按大小顺序排序(以下程序使用的是快速排序算法,也可以使用冒泡排序,嵌套两层循环)name “circle structure”LEA DI, BUFFERMOV BL, 99NEXT0:MOV SI, DIMOV CL, BLNEXT3:MOV AX,
4、SIADD, SI, 2CMP AX, SIJNC NEXT 5MOV DX, SIMOV SI-2, DXMOV SI, AXNEXT5:DEC CLJNZ NEXT3DEC BLJNZ NEXT0HLT四、子程序编写程序,完成将一组BCD数转换成16位二进制数。(BCD数转换成16位二进制数用子程序实现)下面提供三种方案,分别用寄存器、储存器和堆栈传递参数使用寄存器传递参数name text subprogram using registerSTACK SEGMENT STACK DB 256 DUP(?)STACK ENDSDATA SEGMENT BCD1 DB 07H, 06H, 0
5、7H, 02H, 03H LENG1 DB 5 RESULT DW ?DATA ENDSCODEM SEGMENT ASSUME CS:CODEM, DS:DATA, SS:STACK START: MOV AX, DATA MOV DS, AX LEA SI, BCD1 MOV CX, LENG1 CALL FAR PTR BCD-16B MOV RESULT, DX MOV AH, 4CH INT 21HCODEM ENDSCODES SEGMENT ASSUME CS:CODES ;the part of subprogram BCD-16B PROC FAR PUSH BX PUSH
6、AX ADD SI, CX MOV DX, 0 BCDL: DEC SI PUSH CX MOV AL, SI AND AL, 0FH CBW MOV BX, AX MOV AX, DX MOV CX, 10 MUL CX MOV DX, AX ADD DX, BX POP CX LOOP BCDL POP AX POP BX RET BCD-16B ENDPCODES ENDSEND START使用储存器传递参数name text subprogram using storeSTACK SEGMENT STACK DB 256 DUP(?)STACK ENDSDATA SEGMENT BCD
7、1 DB 07H, 06H, 07H, 02H, 03H ADSEG DW ? ADOFST DW ? LENG1 DW ? RESULT DW ?DATA ENDSCODEM SEGMENT ASSUME CS:CODEM, DS:DATA, SS:STACK START: MOV AX, DATA MOV DS, AX ;entrance parameter MOV AX, SEG BCD1 MOV ADSEG, AX MOV AX, OFFSET BCD1 MOV ADOFST, AX MOV LENG1, 5 CALL FAR PTR BCD-16B MOV AH, 4CH INT 2
8、1HCODEM ENDSCODES SEGMENT ASSUME CS:CODES ;the part of subprogram BCD-16B PROC FAR PUSH BX PUSH AX PUSH SI PUSH DS MOV DS, ADSEG MOV SI, ADOFST MOV CX, LENG1 XOR DX, DX ADD SI, CX BCDL: DEC SI PUSH CX MOV AL, SI AND AL, 0FH CBW MOV BX, AX MOV AX, DX MOV CX, 10 MUL CX MOV DX, AX ADD DX, BX POP CX LOO
9、P BCDL POP AX POP BX POP DS POP SI RET BCD-16B ENDPCODES ENDSEND START使用堆栈传递参数name text subprogram using stackSTACK SEGMENT STACK DB 256 DUP(?)STACK ENDSDATA SEGMENT BCD1 DB 07H, 06H, 07H, 02H, 03H LENG1 DW ? RESULT DW ?DATA ENDSCODEM SEGMENT ASSUME CS:CODEM, DS:DATA, SS:STACK START: MOV AX, DATA MO
10、V DS, AX ;push PUSH DS LEA SI, BCD1 PUSH SI MOV CX, LENG1 PUSH CX CALL FAR PTR BCD-16B POP DX MOV RESULT, DX MOV AH, 4CH INT 21HCODEM ENDSCODES SEGMENT ASSUME CS:CODES ;the part of subprogram BCD-16B PROC FAR PUSH BP MOV BP, SP PUSH DS PUSH SI PUSH CX PUSH BX PUSH AX MOV CX, BP+6 MOV SI, BP+8 MOV DS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 顺序 分支 循环 子程序 设计
限制150内