




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
公司名称实验二 顺序、分支、循环、子程序设计微机原理上机实验作者姓名日期预习报告零、相关知识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, 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 STORNEXT5: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, 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, 07H, 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 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 BCD1 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 21HCODEM 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 LOOP 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 MOV 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, BP+10 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 POP CX POP DS POP SI POP BP RET A BCD-16B ENDPCODES ENDSEND START正式实验报告一、实验要求1教材P74例1。m=6,n=4,w=7。结果Q也放在内存中。2教材P75例3。3从键盘上输入1个数,判断其奇偶性,如果是奇数,屏幕上显示”It is odd”,否则显示”It is even”。4从键盘上输入N个字符(NALMOV BX, 0MOV BL, SI+2SUB AX, BX HLT3.2 textbook page75-3用0,1,C,D,E,O,P,Q,R,S,$的ASCII值代表10位学生的分数,分别为48/49/67/68/69/79/80/81/82/83分name textbook page75-3data segment SCORES DB 0,1,C,D,E,O,P,Q,R,S,$ ;48/49/67/68/69/79/80/81/82/83ends code segmentstart: ASSUME DS:DATA, CS:CODE MOV AX, DATA MOV DS, AX MOV CX, 10 MOV SI, OFFSET SCORES; MOV SI, OFFSET SCORES MOV DI, 0000H GOON:MOV AL, SICMP AL, 90JC NEXT3INC DHJMP STORNEXT3:CMP AL, 70JC NEXT5INC DLJMP STORNEXT5:CMP AL, 60JC NEXT7INC BHJMP STORNEXT7:INC BLSTOR:INC SILOOP GOONMOV DI, DHMOV DI+1, DLMOV DI+2, BHMOV DI+3, BLendsend start由结果可知:DH=0,DL=5,BH=3,BL=2说明90以上0人,8970有5人,6960有3人,小于60有2人3.3 experiment 2-3name experiment 2-3 data segment HEX1 DB 0AH,0DH,It is even$ HEX2 DB 0AH,0DH,It is odd$;0AH,0DH换行+回车 endscode segment start: ASSUME DS:DATA MOV AX, DATA MOV DS, AX ;read from the keyboard MOV CX, 16 DO: MOV AH, 01H INT 21H CMP AL, 13 JZ NEXT0 MOV BL, AL LOOP DO NEXT0: SUB BL, 48 MOV AL, BL MOV BL, 2 DIV BL CMP AH, 1 JNZ NEXT1 JZ NEXT2 NEXT1: LEA DX, HEX1 MOV AH, 09H INT 21H HLT NEXT2: LEA DX, HEX2 MOV AH, 09H INT 21H endsend start若输入的为偶数若输入的为奇数3.4 experiment 2-4name experiment 2-4data segment HEX DB 16 DUP(0) endscode segmentstart: ASSUME DS:DATA MOV AX, DATA MOV DS, AX MOV CX, 16;read from keyboardread: CMP CX, 1 JZ STOP MOV AH, 01H INT 21H CMP AL, 65 JZ count CMP AL, 13 JZ STOP LOOP read ;count A characterscount: INC BL LOOP read STOP: MOV AH, 02H MOV DL, 0AH INT 21H; 打印换行 MOV DL, 0DH INT 21H;打印回车 ADD BL, 48 MOV DL, BL INT 21Hendsend start3.5 experiment 2-5冒泡排序,没有在BUF3中除去重复的字符此题设两个字符串为BUF1 = ”ACEGIK”BUF2 = ”BDFJLHMN”name experiment 2-5;此程序不需要压入堆栈保护的数据data segment BUF1 DB ACEGIK$ BUF2 DB BDFJLHMN$ BUF3 DB 14 DUP(0) ends stack segment DB 256 DUP(0)endscode segmentstart: ASSUME DS:DATA, CS:CODEL, SS:STACK MOV AX, DATA MOV DS, AX LEA BX, BUF1 LEA SI, BUF2 LEA DI, BUF3 CALL remove CALL reorder;段内转移,若段间转移,测试一下格式 ;print on the screen LEA DX, BUF3 MOV AH, 09H INT 21H HLT remove proc near MOV CX, 6 DO1: MOV AX, BX MOV DI, AX INC BX INC DI LOOP DO1 MOV CX, 8 DO2: MOV AX, SI MOV DI, AX INC SI INC DI LOOP DO2 RET remove endp reorder proc near MOV CX, 13;注意是13,思考清楚 JUDGE1: LEA DI, BUF3 PUSH CX MOV CX, 13 JUDGE2: MOV AL, DI MOV BL, DI+1 CMP AL, BL JC NEXT1 MOV DI+1, AL MOV DI, BL NEXT1: INC DI LOOP JUDGE2 POP CX LOOP JUDGE1 RET reorder endpend start采用串的合并的算法,可以除去BUF3中重复的字符name experiment 2-5plusdata segment
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大唐电力江苏省2025秋招面试专业追问及参考机械工程岗位
- 大唐电力铁岭市2025秋招机械工程专业面试追问及参考回答
- 中国广电呼和浩特市2025秋招心理测评常考题型与答题技巧
- 操守小学校园艺术节活动方案
- 台州市中石油2025秋招笔试模拟题含答案炼化装置操作岗
- 国家能源乌鲁木齐市2025秋招笔试题库含答案
- 舟山市中石油2025秋招面试半结构化模拟题及答案财务与审计岗
- 太原市中石油2025秋招面试半结构化模拟题及答案炼油设备技术岗
- 张家口市中石油2025秋招笔试综合知识专练题库及答案
- 仓储管理中级考试题及答案
- 2025江西上饶市属国有企业第一批次招聘105人考试参考试题及答案解析
- 活动板房施工合同范本
- 2025关于上海市的劳动合同范本
- 弱电施工安全培训课件
- 特种作业考试试题(含答案)
- 2025年储能应用行业研究报告及未来行业发展趋势预测
- 施工现场节假日安全管理措施
- 2025年汽车驾驶员(技师)实操考试题带答案
- 浦东机场手册
- JGJ保温防火复合板应用技术
- 幼儿园绘本:《闪闪的红星》 红色故事
评论
0/150
提交评论