汇编语言实验后两个题目.doc_第1页
汇编语言实验后两个题目.doc_第2页
汇编语言实验后两个题目.doc_第3页
汇编语言实验后两个题目.doc_第4页
汇编语言实验后两个题目.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验七 宏汇编指令应用1实验目的(1)掌握汇编语言中宏指令的应用方法。(2)将宏汇编与子程序想比较,了解各自的优缺点。(3)尝试编写通用的宏汇编程序。2实验内容和步骤(1)题目:编制一个求三个字节变量的平均值,并显示整数部分结果的程序。(2)设计思路:先求和,再求平均值,设计的关键是考虑宏的哑元的设置。(3)参考程序:TITLE 7.ASMNEXTLINE MACRO ;回车换行宏 MOV AH,2 MOV DL,10 INT 21H MOV AH,2 MOV DL,13 INT 21H ENDMCOMPU MACRO DAA,COU ;求平均数的宏 LOCAL NEXT MOV CL,COU LEA SI,DAA MOV AX,0NEXT: ADD AL,SI ADC AH,0 INC SI DEC CL JNZ NEXT MOV BL,COU DIV BL MOV AVERAGE,AL ENDMOUTM MACRO DA ;以十进制显示结果宏 MOV AL,DA MOV AH,0 MOV CH,10 MOV CL,100 DIV CL MOV DL,AL MOV DH,AH ADD DL,30H MOV AH,2 INT 21H MOV AH,0 MOV AL,DH DIV CH MOV DL,AL MOV DH,AH ADD DL,30H MOV AH,2 INT 21H MOV DL,DH ADD DL,30H MOV AH,2 INT 21H ENDMDATA SEGMENT ARRAY DB 1,2,3 COUNT EQU $-ARRAY AVERAGE DB ? DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX COMPU ARRAY,3 NEXTLINE OUTM AVERAGE MOV AH,4CH INT 21HCODE ENDS END START(4)掌握以下的隐含的知识点宏定义的方法。宏调用的使用方法。程序中定义了NEXTLINE、COMPU、OUTM三个宏,分别完成回车换行、求平均数、和输出十进制数的功能;(5)扩展训练:扩展题目1:从键盘输入三个十进制字节型无符号数据,求其平均值,并显示整数部分结果的程序。编程要点:(1)键盘输入数据每位位置变化对应实际数值变化的规律;(2)结果数据每一位的提取过程;扩展题目2:试用条件汇编编写一宏定义,能完成多种DOS系统功能调用。编程要点:(1)分析不同DOS系统功能调用参数的不同;(2)学会灵活使用宏定义中的哑元和宏调用在的实元;扩展题目 3:编写常用的输入输出的宏功能模块。编程要点:(1)将(十六位二进制数表示范围内的)十进制数显示在屏幕上;(2)输入十进制数(最大9999)的宏等。扩展题目 4:用宏指令完成实验六中的子程序设计。编程要点:注意子程序和宏的区别;3预习内容教材第3、6、7、8章实验八 输入输出及图形程序设计1实验目的(1)熟悉常用的DOS系统功能调用。(2)熟悉常用的BIOS系统功能调用。(3)熟练8086汇编的图形显示的实现方法。2实验内容和步骤(1)题目:编制显示灰白底蓝红相间的字符的程序。(2)设计思路:通过改变彩色字符显示的属性字节,修改程序。(3)参考程序:TITLE 8.ASMSTRIO MACRO X,Y,Z,L,M,N X Y,Z MOV L,M INT &N&H ENDMDATA SEGMENTSTRING DB H,71H,E,74H,L,71H,L,74H DB O,71H, ,77H, ,77H,T,74H DB E,71H,A,74H,C,71H,H,74H DB E,71H,R,74H STRINGLEN EQU ($-STRING)/2DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV ES,AX STRIO MOV,AH,0,AL,03,10 MOV CX,0 MOV DX,184FH ;从0行0列到24行79列 STRIO MOV,AX,0600H,BH,7,10 ;清屏P330 LEA BP,STRING MOV CX,STRINGLEN MOV DX,0B0BH ;11行11列 MOV BH,0 STRIO MOV,AL,3,AH,13H,10 ;P328 用方式3显示 MOV AH,4CH INT 21HCODE ENDS END START(4)扩展训练:扩展题目1:将程序中的2号调用改成9号调用。 熟练掌握DOS系统功能的01、02、09、0A号功能调用。DATAS SEGMENTSTR DBplease input a string:$BUF DB 20DB ?DB 20 DUP (?)CRLF DB 0AH,0DH,$DATAS ENDSSTACKS SEGMENT STACKDB 200 DUP(?)STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATASMOV DS,AXLEA DX,STRMOV AH,9INT 21HMOV AH,10LEA DX,BUFINT 21HLEA DX,CRLFMOV AH,9INT 21HMOV CL,BUF+1LEA SI,BUF+2NEXT: MOV DL,SIMOV AH,2INT 21HINC SIDEC CLJNZ NEXT;MOV AH,4CHINT 21HCODE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论