微原软件实验二:汇编语言程序设计.docVIP

微原软件实验二:汇编语言程序设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微原软件实验二:汇编语言程序设计微原软件实验二:汇编语言程序设计

一、实验目的 1、开始独立进行汇编语言程序设计; 2、掌握基本分支,循环程序设计; 3、掌握最简单的 DOS 功能调用 4、掌握最基本的代码转换方法; 5、运用子程序进行程序设计. 二、实验内容 1、实验要求 1、编写一个程序,在显示器上显示256个ASCII代码,要求显示格式为每行显示16个字符,两个ASCII字符之间空一格。 2、教材习题4.1、4.2、4.3 3、教材习题4.21 2、程序流程图 ①附加题 图一:附件题(格式输出ASCII码)流程图 ②习题4.1 图二:习题4.1流程图 ③习题4.2 图三:习题4.2流程图 ④习题4.3 图四:习题4.3流程图 ⑤习题4.21 图五:习题4.21主程序子程序一流程图 图六:习题4.21子程序二子程序三 3、源程序 ①附加题 data segment count equ 256 data ends stack segment stack stack buf db 20 dup(?) stack ends code segment assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax xor al,al mov cx,count zrbh: mov bh,16 next: call disp ;输出字符 push ax ;入栈保护 push bx call space ;输出空格 pop bx ;出栈恢复 pop ax inc al ;自增 dec bh ;自减 jnz loop1 ;如果输出个数还不是16的倍数 push ax push bx call cr ;输出回车、换行 pop bx pop ax mov bh,16 ;重新设置bh loop1: loop next mov ah,4ch int 21h disp proc near ;显示字符子程序 mov dl,al ;在调用之前先把要显示的字符送入al mov ah,2 int 21h ret disp endp space proc near mov dl,20h mov ah,2 int 21h ret space endp cr proc near mov dl,0ah mov ah,2 int 21h mov dl,0dh mov ah,2 int 21h ret cr endp code ends end start ②习题4.1 data segment org 100h ;设置256个单元的起始地址偏移量为0100h buf1 db 256 dup(?) ;buf1的偏移量为0100h count equ $-buf1 ;得到buf1的长度 data ends stack segment stack stack stack ends code segment assume cs:code,ds:data,ss:stack start: mov ax,data ;data=076Ah,数据段基址 mov ds,ax mov si,offset buf1 ;si=0100h mov cx,count ;循环计数 xor al,al ;al清零,初始化为00h next: mov [si],al ;将al存储到ds*4+si=077A0h inc al ;al加一 inc si ;si加一 loop next ;循环 mov ah,4ch ;程序结束 int 21h code ends end start ③习题4.2 data segment org 100h ;设置256个单元的起始地址偏移量为0100h buf1 db 256 dup(?) ;buf1的偏移量为0100h count equ $-buf1 ;得到buf1的长度 data ends stack segment stack stack stack ends code segment assume cs:code,ds:data,ss:stack start: mov ax,data ;data=076Ah,数据段基址 mov ds,ax mov si,offset buf1 ;si=0100h mov cx,count ;循环计数 xor al,al ;al清零,初始化为00h next: mov [si],al ;将al存储到ds*4+si=077A0h inc al ;al加一 inc si ;si加一 loop next ;循环 xor bx,bx ;bx置零,bl和bh分别存放正、负元素的个数

文档评论(0)

ganqludp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档