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

    实验一汇编语言程序设计.docx

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

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

    实验一汇编语言程序设计.docx

    1、实验一 汇编语言程序设计实验一 汇编语言程序设计实验一汇编语言程序设计一、实验目的1、掌握Lab6000p实验教学系统基本操作;2、掌握8088/8086汇编语言的基本语法结构;3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备装有emu8086软件的PC机 三、实验内容1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。2、将二进制数500H转换成二十进制码,并显示“500H的BCD是:” 3、将二十进制码7693转换

    2、成ASCII码,并显示“BCD码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1, 2 ,30AH64H5、键盘输入一个小写字母(az),转换成大写字母 显示:请输入一个小写字母(az): 转换后的大写字母是:6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH 四、实验代码及结果 、实验代码:第1页DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组SH

    3、OW DB THE MAX IS: ,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOVAX,DATA;把数据的基地址赋给DSMOVDS,AX MOVDX,OFFSET SHOW;调用DOS显示字符串MOVAH,09H INT21H MOVSI ,OFFSET SZ;数组的偏移地址赋给SIMOVCX,10 ;存进数组的长度给CXMOVDH,80H;将数组的第一个数写进DH NEXT: MOVBL,SI;将数组的第一个数写进BLCMPDH,BL ;比较DH和BL中数的到校JAENEXT1;如果DH中的数大于BL中,将跳转到NEXT

    4、1MOVDH,BL ;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INCSI;偏移地址加1 LOOPNEXT;循环,CX自减一直到0,DH中存数组的最大值;接下来的程序是将将最大值DH在屏幕上显示输出MOVBX,02H第 2 页NEXT2: MOVCL,4 ROLDH,CL;将DH循环右移四位MOVAL,DH ANDAL,0FH;将AL高位清零,一位一位进行ASCII码转换CMPAL,09H;与09H比较大小 JBENEXT3;若小于,跳转至NEXT3,证明数值在0-9之间 ADDAL,07H ;若大于,则证明为字母,因为字母与数字的ASCII码相差7,所以要加上7 NEXT

    5、3: ADDAL,30H ;因为转换为ASCII码要加30HMOVDL,AL MOVAH,2;DOS中断显示INT21HDECBXJNZNEXT2MOVDL,HMOVAH,2INT21H CODE ENDSEND START 实验结果:第 3 页第 4 页、实验代码 DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组SHOW DB THE MAX IS: ,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOVAX,DATA;把数据的基地址赋给DSMO

    6、VDS,AX MOVDX,OFFSET SHOW;调用DOS显示字符串MOVAH,09H INT21H MOVSI ,OFFSET SZ;数组的偏移地址赋给SIMOVCX,10 ;存进数组的长度给CXMOVDH,80H;将数组的第一个数写进DH NEXT: MOVBL,SI;将数组的第一个数写进BLCMPDH,BL ;比较DH和BL中数的到校 JGENEXT1;如果DH中的数大于BL中,将跳转到NEXT1;此为无符号数与有符号数的唯一差别,JGE是无符号数的跳转MOVDH,BL;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INCSI;偏移地址加1 LOOPNEXT ;循环,C

    7、X减1,一直到CX减为0,DH中存数组的最大值第 5 页 ;接下来的程序是将最大值DH在屏幕上显示输出MOVBX,02H NEXT2: MOVCL,4 ROLDH,CL;将DH循环右移四位MOVAL,DH ANDAL,0FH ;将AL高位清零,一位一位进行ASCII码转换CMPAL,09H;与09H比较大小 JBENEXT3 ;若小于,跳转至NEXT3,证明数值在0-9之间 ADDAL,07H;若大于,则证明为字母,因为字母与数字的ASCII码相差7,所以要加上7 NEXT3: ADDAL,30H;因为转换为ASCII码要加30HMOVDL,AL MOVAH,2;DOS中断显示INT21HDE

    8、CBXJNZNEXT2MOVDL,HMOVAH,2INT21H CODE ENDSEND START 实验结果第 6 页第 7 页2、实验代码DATASEGMENTBNUM DW 0500HDNUM DB 4 DUP MES DB THE BCD OF 500H IS: ,$ DATAENDS CODESEGMENTASSUME CS:CODE,DS:DATA START:MOVAX,DATAMOVDS,AXMOVDX,OFFSET MESMOVAH,09HINT21HMOVAX,BNUMLEABX,DNUMMOVDL,0 ;计算1000的个数 COUNT1:SUBAX,03E8HJCNEXT

    9、1INCDLJMPCOUNT1NEXT1:ADDAX,03E8H;将字符串偏移量写入DX;将0500H存入AX中;取DNUM的偏移量;AX-1000;不够减,即若CF=1,有借位,转NEXT1;DL+1;跳转AGAIN1;AX+1000第 8 页MOVBX,DL;将DL(即千位数)存入DNUM中INCBX;BX+1MOVDL,0;DL清零 ;计算100个数 COUNT2:SUB JCINCJMP NEXT2:ADD MOVINCMOV ;计算10个数 COUNT3:SUB JCINCJMP NEXT3:ADD MOVINCMOVAX,0064HNEXT2 DL COUNT2 AX,0064HB

    10、X,DLBX DL,0 AX,000AHNEXT3 DL COUNT3 AX,000AHBX,DLBX BX,AL ;AX-100 ;将DL(即百位数)存入DNUM中 ;AX-10 ;将DL(十位数)存入DNUM中 ;计算个位数第 9 页;接下来的程序是将数值转化为ASCII并在屏幕上显示MOVCX,4LEASI,DNUM ;取DNUM的地址偏移量 NEXT4:MOVAL,SI ;将DNUM中所存的各个数值转换为ASCII码; ;在屏幕上输出显示CMPAL,09HJBENEXT5ADDAL,07HNEXT5:ADDAL,30H MOVDL,ALMOVAH,2INT21H INCSIDECCX

    11、JNZNEXT4CODEENDSENDSTART 实验结果第 10 页第 11 页3、实验代码 DATA SEGMENTOUP DB THE ASCII OF 7963 IS:,$A1 DB 07H,09H,06H,03H DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA START:MOVAX,DATAMOVDS,AXMOVDX,OFFSET OUPMOVAH,09HINT21HMOVCL,4MOVSI,0 NEXT:MOVAL,A1SI ;将A1的第SI个数据传给ALMOVBL,ALORAL,30H;加30转换为ASCII码值SHRAL,4ANDAL

    12、,0FH;将右移后的高位清零ADDAL,30H;因为ASCII码与值之间相差30MOVDL,ALMOVAH,2;输出对应的ASCII码INT21H第 12 页MOVAL,BLANDAL,0FHADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVDL, MOVAH,02HINT21HINCSILOOPNEXT EXIT:MOVAH,4CHINT21H CODEENDSENDSTART 实验结果第 13 页第 14 页4、实验代码DATASEGMENTYI DB 100 DUP(88H)ER DB 100 DUP(00H);定义数组MES DB THE NUMBER OF COU

    13、NTER IS: ,$ DATAENDS CODESEGMENTASSUME CS:CODE,DS:DATA MAINPROC FAR START:MOV AX,DATAMOV DS,AXMOV CL,100MOV CH,00HLEA SI,YILEA DI,ERNEXT:MOV AL,SIMOV DI,ALINC SIINC DIINC CHMOV DX,OFFSET MESMOV AH,9INT 21HCALL COUNTDEC CL;计数器初值;转移次数统计,初值 ;将内存块1的偏移量给SI ;将内存块2的偏移量给DI ;将YI中的数据复制到ER中;显示字符串;调用子程序 ;计数减1第

    14、15 页JNZ NEXT;计数不为零,跳转执行HLTMAIN ENDP;主程序结束 ;下面是子程序,实现屏幕显示转移次数功能COUNTPROC NEAR;定义子程序属性NEXT2:NEXT3:PUSH CXMOV DH,CH MOV BX,02HMOV CL,4ROL DH,CLMOV AL,DHAND AL,0FHCMP AL,09HJBE NEXT3ADD AL,07HADD AL,30H MOV DL,ALMOV AH,2INT 21H DEC BX JNZ NEXT2MOV DL,HMOV AH,2 INT 21HMOV DL,0AH;CX进栈;将DH循环右移四位;将AL高位清零 ;与

    15、09H比较大小 ;若小于,跳转至NEXT3 ;加30H ;DOS中断显示 ;显示H ;回车第 16 页MOV AH,2INT 21HMOV DL,0DH;换行MOV AH,2INT 21HPOP CX;CX出栈RET COUNTENDP ;子程序结束 CODEENDSEND START 实验结果第 17 页第 18 页5、实验代码DATASEGMENTINP DB PLEASE INPUT (az): ,$;设置字符串OUP DB THE TRANSFORMATION(AZ) IS:,$ DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATA MAINPROC FA

    16、R START:MOV AX,DATAMOV DS,AXMOV DX,OFFSET INP;显示字符串,提示输入MOV AH,9INT 21HMOV AH,1;DOS中断调用,从键盘中读取一个字符INT 21HPUSH AX;AX入栈PUSH DXMOV DL,0DH ;中断调用,回车MOV AH,2INT 21HMOV DL,0AH ;中断调用,换行MOV AH,2INT 21HMOV DX,OFFSET OUP;显示字符串,输出提示MOV AH,9第 19 页INT 21HPOP DX;DX出栈POP AX;AX出栈SUB AL,32 ;AL减去32,使大写转化为小写 ;大小写之间的ASC

    17、II码值相差32MOV DL,AL;DOS中断显示结果MOV AH,2INT 21HMAIN ENDP CODEENDSEND START 实验结果:第 20 页实验一汇编语言程序设计一、实验目的1、掌握Lab6000p实验教学系统基本操作;2、掌握8088/8086汇编语言的基本语法结构;3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备装有emu8086软件的PC机 三、实验内容1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最

    18、大值,并显示。2、将二进制数500H转换成二十进制码,并显示“500H的BCD是:” 3、将二十进制码7693转换成ASCII码,并显示“BCD码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1, 2 ,30AH64H5、键盘输入一个小写字母(az),转换成大写字母 显示:请输入一个小写字母(az): 转换后的大写字母是:6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH 四、实验代码及结果 、实验代码:第1页DATA SEGMEN

    19、T SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组SHOW DB THE MAX IS: ,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOVAX,DATA;把数据的基地址赋给DSMOVDS,AX MOVDX,OFFSET SHOW;调用DOS显示字符串MOVAH,09H INT21H MOVSI ,OFFSET SZ;数组的偏移地址赋给SIMOVCX,10 ;存进数组的长度给CXMOVDH,80H;将数组的第一个数写进DH NEXT: MOVBL,SI;将数组的第一个

    20、数写进BLCMPDH,BL ;比较DH和BL中数的到校JAENEXT1;如果DH中的数大于BL中,将跳转到NEXT1MOVDH,BL ;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INCSI;偏移地址加1 LOOPNEXT;循环,CX自减一直到0,DH中存数组的最大值;接下来的程序是将将最大值DH在屏幕上显示输出MOVBX,02H第 2 页NEXT2: MOVCL,4 ROLDH,CL;将DH循环右移四位MOVAL,DH ANDAL,0FH;将AL高位清零,一位一位进行ASCII码转换CMPAL,09H;与09H比较大小 JBENEXT3;若小于,跳转至NEXT3,证明数值在

    21、0-9之间 ADDAL,07H ;若大于,则证明为字母,因为字母与数字的ASCII码相差7,所以要加上7 NEXT3: ADDAL,30H ;因为转换为ASCII码要加30HMOVDL,AL MOVAH,2;DOS中断显示INT21HDECBXJNZNEXT2MOVDL,HMOVAH,2INT21H CODE ENDSEND START 实验结果:第 3 页第 4 页、实验代码 DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组SHOW DB THE MAX IS: ,$ DATA ENDS CODE SEGME

    22、NT ASSUME CS:CODE,DS:DATA START: MOVAX,DATA;把数据的基地址赋给DSMOVDS,AX MOVDX,OFFSET SHOW;调用DOS显示字符串MOVAH,09H INT21H MOVSI ,OFFSET SZ;数组的偏移地址赋给SIMOVCX,10 ;存进数组的长度给CXMOVDH,80H;将数组的第一个数写进DH NEXT: MOVBL,SI;将数组的第一个数写进BLCMPDH,BL ;比较DH和BL中数的到校 JGENEXT1;如果DH中的数大于BL中,将跳转到NEXT1;此为无符号数与有符号数的唯一差别,JGE是无符号数的跳转MOVDH,BL;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INCSI;偏移地址加1 LOOPNEXT ;循环,CX减1,一直到CX减为0,DH中存数组的最大值第 5 页


    注意事项

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

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




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

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

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


    收起
    展开