77范文网 - 专业文章范例文档资料分享平台

汇编语言程序设计实验报告(8)

来源:网络收集 时间:2018-12-19 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

int 21h call output mov ah,4ch int 21h input proc push ax push bx push cx xor dx,dx lop1: mov ah,01h int 21h cmp al,0dh jz extp1 cmp al,'.' jz lop1 and al,0fh mov cl,al mov ax,dx mov bx,10 mul bx mov dx,ax mov ch,0 add dx,cx next: jmp lop1 extp1: pop cx pop bx pop ax ret input endp

ctotal proc push eax push cx push dx xor cx,cx mov cx,num lop2: lea dx,msg2 mov ah,09h int 21h call input xor bx,bx mov bx,dx lea dx,msg3

第 34 页

mov ah,09h int 21h call input xor eax,eax mov eax,ebx xor ebx,ebx mov bx,dx mul ebx

add total,eax loop lop2 pop dx pop cx pop eax ret ctotal endp

output proc push si push ebx push eax push cx xor cx,cx lea si,tot add si,16 mov eax,total mov ebx,10 lop3: xor edx,edx div ebx mov [si],dl inc cx cmp cx,3 jnz next2 dec si push ax mov al,'.' mov [si],al pop ax next2: cmp eax,0 jz next3 dec si jmp lop3 next3: lea si,tot

mov cx,17 lop4: mov al,[si]

第 35 页

inc si dec cx cmp al,0 jz lop4 dec si inc cx

lop5: mov al,[si] cmp al,'.' jz next4 or al,30h next4: mov dl,al mov ah,02h int 21h inc si loop lop5 pop cx pop eax pop ebx pop si ret

output endp code ends

end start

6、程序执行情况如图4.6所示,输入了3个员工的工作时间和工种系数,计算出一年的工作量为:876.501

图4.6 程序执行情况

五、结论

通过这个实验我进一步熟悉了子程序的定义方法和调用方法。并且通过此实验我学会了如何对小数进行运算。

第 36 页

实验五 子程序和主程序之间的参数传递

一、实验目的

通过定义公共变量的方法实现主程序和子程序之间的参数传递。如在主程序和子程序中都定义一个具有Common和Public属性的数据段,然后将需要传递的参数放在这个段中,这样在主程序和子程序中都可以使用这个段所定义的变量了。

二、实验环境

该试验包括的硬件和软件条件如下: 1、硬件环境

(1)Intel i5 3317U (2)内存4G 2、软件环境

(1)Window XP Professor (2)MASM6.11开发软件

三、实验步骤

1、设计一个子程序模块,将带传递的变量k所在的数据段属性设置成Common,并实现十进制ASCⅡ码到二进制数的转换,将转换结果存放在变量k中。

2、设计一个子程序模块,将带传递的变量m所在的数据段属性设置成Public并实现十进制ASCⅡ码到二进制数的转换,将转换结果存放在变量m中。

3、比较上述两种属性下数据段的区别。

4、设计一个主程序模块,通过子程序调用的方式,将(1)和(2)执行后存放在k和m中的变量值取出来存放在该主程序定义的变量i和j中。

5、对上述程序进行调试,写出调试过程中内存单元和寄存器的变化,并解释为什么?

6、根据上述要求,写出实验报告。

四、实验结果及其分析

1.、设计一个子程序模块,将带传递的变量k所在的数据段属性设置成Common,并实现十进制ASCⅡ码到二进制数的转换,将转换结果存放在变量k中。其源代码如下:

extrn exit:far public input

data1 segment common

第 37 页

k dw ? data1 ends

stack segment para stack db 20h dup(0) stack ends

code segment

assume cs:code,ss:stack,ds:data1 input: push ds mov ax,data1 mov ds,ax xor dx,dx lop: mov ah,01h int 21h cmp al,0dh jz next xor bx,bx and al,0fh mov bl,al mov ax,dx mov cx,10 mul cx add ax,bx mov dx,ax jmp lop next: mov k,dx pop ds jmp exit code ends end

2、设计一个子程序模块,将带传递的变量m所在的数据段属性设置成Public并实现十进制ASCⅡ码到二进制数的转换,将转换结果存放在变量m中。

public m

data2 segment public m dw ? data2 ends

stack segment para stack db 20h dup(0) stack ends code segment

第 38 页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库汇编语言程序设计实验报告(8)在线全文阅读。

汇编语言程序设计实验报告(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/377484.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: