欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    8086汇编语言程序设计.docx

    • 资源ID:13842462       资源大小:18.80KB        全文页数:31页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    8086汇编语言程序设计.docx

    1、8086汇编语言程序设计实验1 简单汇编语言程序设计一、实验目的与要求1熟悉汇编语言运行、调试环境及方法。2掌握简单汇编语言程序的设计方法。3熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。二、实验内容根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的地址。试编写汇编程序,完成Z(W-X) 5-Y)(R+ 2) 。2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0位置1,否则将该位置0。三、实验报告要求1.程序算法流程图。2.源程序清单

    2、。3.程序运行结果。4.调试过程中遇到的问题和解决的方法。实验2 分支及循环程序设计一、实验目的与要求1熟悉汇编语言运行、调试环境及方法。2掌握分支程序和循环程序的设计方法。3熟悉调试工具DEBUG,并运用DEBUG工具调试程序。二、实验内容根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定)三、实验报告要求1.程序算法流

    3、程图。2.源程序清单。3.程序运行结果。4.调试过程中遇到的问题和解决的方法。实验3 子程序程序设计一、实验目的与要求1熟悉汇编语言运行、调试环境及方法。2掌握子程序的设计方法。3熟悉调试工具DEBUG,并运用DEBUG工具调试程序。二、实验内容根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序

    4、封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下:EXAMSCORE DB 01 ;学号DB 89,76,54,77,99 ;单科成绩DW ? ;该学生的总分DB 02 ;学号DB 79,88,64,97,92 ;单科成绩DW ? ;该学生的总分三、实验报告要求1.程序算法流程图。2.源程序清单。3.程序运行结果。4.调试过程中遇到的问题和解决的方法。实验4 综合程序设计一、实验目的与要求1熟悉汇编语言运行、调试环境及方法。2掌握汇编语言程序的设计方法。3熟悉调试工具DEBUG,并运用DEBUG工具调试程序。二、实验内容根据下列要求,编写

    5、汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。1. 编写汇编程序接收用户从键盘键入的月份数,在终端上显示该月的英文缩写名。当用户按下ESC键时,程序退出,返回DOS。参考程序执行过程如下: month?5 MAY month?9 SEP month?2. 按15行16列的表格形式显示ASCII码为10HFFH的所有字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII码为0)分隔。3.在第2题程序的基础上进行修改。将显示表格的行、列数由固定的15行16列改为由用户从键盘输入。然后,按用户输入的行列值进行显示。4.编写汇编程序将内存数据区保存的若干个带符号16位数据

    6、按从大到小的顺序排列后,以十进制真值的形式在屏幕上显示。三、实验报告要求1.程序算法流程图。2.源程序清单。3.程序运行结果。4.调试过程中遇到的问题和解决的方法。源程序:1.1*DATA SEGMENT x DB 3 y DB 1 z dw ? w db 23 r db 6DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX mov al,w sub al,x cbw mov bl,5 idiv bl sub al,y mov bl,r add bl,2 imul bl mov z,ax MOV A

    7、H,4CH INT 21HCODE ENDSEND START1.2*DATA SEGMENT x db 63 y db ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX mov al,x shr dl,1 shr al,1 rcl dl,1 mov y,dl MOV AH,4CH INT 21HCODE ENDSEND START2.1*DATA SEGMENT STRING DB g3tRfdtf TR34 MESSAGEONE DB Please input the number of s

    8、tring(10):$ MESSAGETWO DB The number of string is:$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX mov ah,9 mov dx,offset messageone int 21h MOV AH,1 INT 21H MOV BL,AL MOV DL,10 MOV AH,2 INT 21H SUB BL,30H CBW MOV CX,BX MOV AL,0 MOV BX,OFFSET STRINGBEGIN: MOV DL,BX CMP DL,a

    9、JB RE CMP DL,z JA RE INC ALRE: INC BX LOOP BEGIN ADD AL,30H mov bl,al mov ah,9 mov dx,offset messagetwo int 21h MOV DL,BL MOV AH,2 INT 21H MOV AH,4CH INT 21HCODE ENDS END START2.2*DATA SEGMENT MAXLEN DB 32 ACTLEN DB ? STRINGONE DB 32 DUP(?) STRINGTWO DB 32 DUP(?) MESSAGEONE DB Please input the strin

    10、g(31):$ MESSAGETWO DB The encryptic string is:$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX mov ah,9 mov dx,offset messageone int 21h MOV DX,OFFSET MAXLEN MOV AH,0AH INT 21H SUB CH,CH MOV CL,ACTLEN ADD DX,2 MOV BX,DX MOV BP,OFFSET STRINGTWO MOV DL,10 MOV AH,2 INT 21HBEGIN

    11、: MOV DL,BX SUB DL,20H MOV BP,DL INC BX INC BP LOOP BEGIN mov AL,$ MOV BP,AL mov ah,9 mov dx,offset messagetwo int 21h MOV AH,9 MOV DX,OFFSET STRINGTWO INT 21H MOV AH,4CH INT 21HCODE ENDS END START3.1*CODE SEGMENTMAIN PROC FAR ASSUME CS:CODESTART: PUSH DS SUB AX,AX PUSH AX MOV AX,0101111010010101B C

    12、ALL DISPDEC CALL CRLF CALL DISPHEX RETMAIN ENDPDISPDEC PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSHF MOV BX,AX MOV CX,10000D CALL DEC_DIV MOV CX,1000D CALL DEC_DIV MOV CX,100D CALL DEC_DIV MOV CX,10D CALL DEC_DIV MOV CX,1D CALL DEC_DIV POPF POP DX POP CX POP BX POP AX RETDEC_DIV PROC NEAR MOV AX,B

    13、X MOV DX,0 DIV CX MOV BX,DX MOV DL,AL ADD DL,30H MOV AH,2 INT 21H RETDEC_DIV ENDPDISPDEC ENDPDISPHEX PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSHF MOV BX,AX MOV CH,4 MOV CL,4ROTATE: ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL PRINTIT ADD AL,7HPRINTIT: MOV DL,AL MOV AH,2 INT 21H DEC CH

    14、JNZ ROTATE POPF POP DX POP CX POP BX POP AX RETDISPHEX ENDPCRLF PROC NEAR PUSH AX PUSH DX MOV DL,0AH MOV AH,2 INT 21H POP DX POP AX RETCRLF ENDPCODE ENDSEND START3.2*DATA SEGMENT EXAMSCORE DB 01 DB 89,76,54,77,99 DW ? DB 02 DB 79,88,64,97,92 DW ? DB 03 DB 43,45,67,87,98 DW ? DB 04 DB 76,65,27,76,98

    15、DW ? DB 05 DB 67,78,23,87,87 DW ?DATA ENDSCODE SEGMENTMAIN PROC FAR ASSUME CS:CODE,DS:DATASTART: PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV CX,5 MOV BX,OFFSET EXAMSCORERE: INC BX CALL SUM CALL DISPDEC CALL CRLF ADD BX,2 LOOP RE RETMAIN ENDPSUM PROC NEAR PUSH CX PUSH DX PUSHF MOV AX,0 MOV CX

    16、,5BEGAIN: MOV DL,BX MOV DH,0 ADC AX,DX INC BX LOOP BEGAIN MOV BX,AX POPF POP DX POP CX RETSUM ENDPDISPDEC PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSHF MOV BX,AX MOV CX,10000D CALL DEC_DIV MOV CX,1000D CALL DEC_DIV MOV CX,100D CALL DEC_DIV MOV CX,10D CALL DEC_DIV MOV CX,1D CALL DEC_DIV POPF POP DX

    17、 POP CX POP BX POP AX RETDEC_DIV PROC NEAR MOV AX,BX MOV DX,0 DIV CX MOV BX,DX MOV DL,AL ADD DL,30H MOV AH,2 INT 21H RETDEC_DIV ENDPDISPDEC ENDPCRLF PROC NEAR PUSH AX PUSH DX MOV DL,0AH MOV AH,2 INT 21H POP DX POP AX RETCRLF ENDPCODE ENDSEND START实验3扩展*;*data segment string0 db error!$ string1 db in

    18、put dec number:$ string2 db input hex number:$ string301 db output dec number(1):$ string302 db output dec number(2):$ X DB 5 DUP(?) string4 db output hex number:$data ends;*;*CODE SEGMENTMAIN PROC FAR ASSUME CS:CODE,DS:DATASTART: PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX CALL KEY_DEC CALL CRL

    19、F CALL DISPDEC CALL CRLF CALL DISPDECZ CALL CRLF CALL DISPHEX CALL CRLF CALL KEY_HEX CALL CRLF CALL DISPDEC CALL CRLF CALL DISPDECZ CALL CRLF CALL DISPHEX RETMAIN ENDP;*;*;输入十进制数并用二进制存储在BX中KEY_DEC PROC NEAR PUSH AX PUSH CX PUSH DX PUSHFREERR: MOV DX,OFFSET STRING1 MOV AH,9 INT 21H MOV BX,0DEC_RE: MO

    20、V AH,1 INT 21H CMP AL,0DH JE DEC_EXIT SUB AL,30H JL DEC_ERR CMP AL,9 JG DEC_ERR CBW XCHG AX,BX MOV CX,10 MUL CX XCHG AX,BX ADD BX,AX JMP DEC_REDEC_ERR: CALL ERROR JMP REERRDEC_EXIT: POPF POP DX POP CX POP AX RETKEY_DEC ENDP;*;*;输入十六进制数并用二进制存储在BX中KEY_HEX PROC NEAR PUSH AX PUSH CX PUSH DX PUSHFHEX_REE

    21、RR: MOV DX,OFFSET STRING2 MOV AH,9 INT 21H MOV BX,0HEX_RE: MOV AH,1 INT 21H CMP AL,0DH JE HEX_EXIT SUB AL,30H JL HEX_ERR CMP AL,0AH JL NEXT SUB AL,7 CMP AL,0AH JL HEX_ERR CMP AL,10H JL NEXT SUB AL,20H CMP AL,0AH JL HEX_ERR CMP AL,10H JNL HEX_ERRNEXT: MOV CL,4 SHL BX,CL MOV AH,0 ADD BX,AX JMP HEX_REH

    22、EX_ERR: CALL ERROR JMP HEX_REERRHEX_EXIT: POPF POP DX POP CX POP AX RETKEY_HEX ENDP;*;*;用十进制输出BX中二进制的数方法一DISPDEC PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSHF MOV DX,OFFSET STRING301 MOV AH,9 INT 21H MOV CX,10000D CALL DEC_DIV MOV CX,1000D CALL DEC_DIV MOV CX,100D CALL DEC_DIV MOV CX,10D CALL DEC_

    23、DIV MOV CX,1D CALL DEC_DIV POPF POP DX POP CX POP BX POP AX RETDEC_DIV PROC NEAR MOV AX,BX MOV DX,0 DIV CX MOV BX,DX MOV DL,AL ADD DL,30H MOV AH,2 INT 21H RETDEC_DIV ENDPDISPDEC ENDP;*;*;用十进制输出BX中二进制的数方法二DISPDECZ PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSHF MOV DX,OFFSET STRING302 MOV AH,9 INT 21

    24、H MOV AX,BX mov BX,0dispdecz_re: MOV DX,0 MOV CX,10D DIV CX MOV XBX,DL INC BX cmp ax,0 JNE DISPDECZ_REdispdecz_next: CMP BX,0 JE DISPDECZ_EXIT DEC BX MOV DL,XBX ADD DL,30H MOV AH,2 INT 21H JMP DISPDECZ_NEXTDISPDECZ_EXIT: POPF POP DX POP CX POP BX POP AX RETDISPDECZ ENDP;*;*;用十六进制输出BX中二进制数DISPHEX PRO

    25、C NEAR PUSH AX PUSH CX PUSH DX PUSHF MOV DX,OFFSET STRING4 MOV AH,9 INT 21H MOV CH,4 MOV CL,4ROTATE: ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL PRINTIT ADD AL,7HPRINTIT: MOV DL,AL MOV AH,2 INT 21H DEC CH JNZ ROTATE POPF POP DX POP CX POP AX RETDISPHEX ENDP;*;*;输出换行符CRLF PROC NEAR PUSH AX PUSH DX MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H POP DX POP AX RETCRLF ENDP;*;*


    注意事项

    本文(8086汇编语言程序设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开