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

合肥工业大学汇编语言程序设计实验报告 - 图文

来源:用户分享 时间:2025/6/28 23:17:41 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

xor bx,bx ;用异或将bx,dx部分清零 xor dx,dx mov bl,08h ;将00001000b赋值给bl mov cx,8 ;利用loop进行8次循环 Lp1: shr bl,1 ;将bl进行逻辑右移一次 jc next ;判断CF中数据是否为1,若是跳转到next处 add dx,3 ;dx加3 loop Lp1 next: mov ah,09h

lea si,table ;将转移表的地址传入到si中 add si,dx ;得到转移表的CF为1的地方 jmp si table:

;同一个代码段内使用near跳转 jmp near ptr l1 jmp near ptr l2 jmp near ptr l3 jmp near ptr l4 jmp near ptr l5 jmp near ptr l6 jmp near ptr l7 jmp near ptr l8

;Li: 将msgi的地址传入到dx中,并跳转到done处 l1: lea dx,msg1 jmp done l2: lea dx,msg2 jmp done l3: lea dx,msg3 jmp done l4: lea dx,msg4 jmp done l5: lea dx,msg5 jmp done l6: lea dx,msg6 jmp done l7: lea dx,msg7 jmp done l8: lea dx,msg8 jmp done ;返回汇编窗口 done: int 21h MOV AH,4CH INT 21H ;代码部分结束

CODES ENDS

END START 2.DATAS SEGMENT x dw 6 y dw 8 DATAS ENDS

STACKS SEGMENT ;未定义栈部分 STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS START:

MOV AX,DATAS MOV DS,AX ;主程序部分

mov ax,x ;分别将x,y压栈 push ax mov ax,y push ax call f ;调用子程序f(x,y) add sp,4 pop ax pop ax ;子程序调用结束,弹栈 MOV AH,4CH INT 21H

;子程序部分 f proc push bp mov bp,sp push ax push dx push bx mov bx,[bp+4] ;bx=y mov ax,[bp+6] ;ax=x imul bx ;x*y add ax,[bp+6] ;x*y+x adc dx,0 sub ax,[bp+4] ;x*y+x-y sbb dx,0 pop bx

pop dx pop ax ret f endp

CODES ENDS

END START

四. 实验结果(包括必要的截图)

五. 实验体会

通过这次实验的练习,我掌握分支和子程序结构和设计方法,特别是地址表和转移表的运用,已经可以熟练的运用转移表和地址表进行分支结构的设计,实验二又让我对子程序参数的调用有了深刻的体会,知道了在运用堆栈进行参数传递时需要注意的要点,另外这次实验又让我再一次熟悉一遍在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。

合肥工业大学汇编语言程序设计实验报告 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9islv1esye0fvqu4zj5m_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top