云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 汇编语言实验报告

汇编语言实验报告

  • 62 次阅读
  • 3 次下载
  • 2025/5/7 12:06:02

实验10 编写子程序

1. 显示字符串:编写一个通用的子程序来实现显示字符串的功能。

子程序描述: 名称:show_str

功能:在指定的位置用指定的颜色,显示一个用0结束的字符串。 参数:(dh)=行号(取值范围0-24), (dl)=列号(取值范围0-79) (cl)=颜色,ds:si指向字符串的首地址 返回:无

如:在屏幕的8行3列,用绿色显示data段中的字符串

assume cs:code data segment

db 'Welcome to masm!',0 data ends

code segment

start:mov dh,8 mov dl,3 mov cl,2 mov ax,data mov ds,ax mov si,0

call show_str

mov ax,4c00h int 21h

show_str: mov ax,160 mul dh mov bx,ax mov ax,2 mul dl add bx,ax mov ax,0B800H mov es,ax mov dl,cl mov cl,0

show0: mov ch,ds:[si] jcxz ok

mov byte ptr es:[bx],ch mov byte ptr es:[bx+1],dl add bx,2 inc si jmp show0 ok: ret code ends end start

2. 解决除法溢出问题:编写子程序避免除法溢出问题

子程序描述: 名称:divdw 功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。

参数:(ax)=dword型数据的低16位,(dx)= dword型数据的高16位,(cx)=除数 返回:(dx)= 结果的高16位,(ax)=结果的低16位, (cx)=余数

应用举例:计算1000000/10(F4240H/0AH),结果:(dx)=0001H,(ax)=86A0H,(cx)=0

assume cs:code code segment

start: mov ax,4240h mov dx,000fh mov cx,0ah call divdw

mov ax,4c00h

int 21h

;名称:divdw

;功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。

;参数:(ax)=dword型数据的低16位;(dx)=dword型数据的高16位;(cx)=除数。 ;返回:(dx)=结果的高16位;(ax)=结果的低16位;(cx)=余数。

divdw:

push si push bx push ax mov ax,dx mov dx,0

div cx ;被除数的高位/cx,高位在ax,余数在dx mov si,ax pop ax

div cx ;(被除数高位的商+低位)/cx,高位在ax,余数在dx mov cx,dx ;余数入cx mov dx,si ;高位的商入dx

pop bx pop si ret

code ends end start

公式x/n=int(h/n)*65536+[rem(h/n)*65536+l]/n解析: 把一个会溢出的除法 变成几个除法来做!

如果高位除法有商,那么商就是结果的高位值,如果会有余数,那么余数自然不能丢弃,余数就作为低位除法的dx(也就是高位的被除数,因为他是从高位除法中余下的)

做低位除法的时候,就拿余下的dx+低位数的ax除以除数,会得到 一个低位的商 和 余数 高位的商+低位数的商+余数 就是结果

关键点:不能按照那个公式进行运算,应该在充分理解的基础上写出算法

搜索更多关于: 汇编语言实验报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

实验10 编写子程序 1. 显示字符串:编写一个通用的子程序来实现显示字符串的功能。 子程序描述: 名称:show_str 功能:在指定的位置用指定的颜色,显示一个用0结束的字符串。 参数:(dh)=行号(取值范围0-24), (dl)=列号(取值范围0-79) (cl)=颜色,ds:si指向字符串的首地址 返回:无 如:在屏幕的8行3列,用绿色显示data段中的字符串 assume cs:code data segment db 'Welcome to masm!',0 data ends code segment start:mov dh,8 mov dl,3 mov cl,2 mov ax,da

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com