实验二 基本程序设计

本文介绍了四个汇编语言程序设计的实例,涉及基本的算术运算、位操作、字符串处理及数组搜索。实验涵盖了顺序、循环、分支和函数结构,以及如何在PC上编译和运行8086/8088汇编程序。程序包括:数值计算、位测试、数组查找和字符串处理。同时,还展示了如何通过堆栈传递参数并以16进制输出计算结果。
摘要由CSDN通过智能技术生成

实验二 基本程序设计

一. 实验目的

1、掌握顺序、循环、分支、函数4种基本程序结构和设计方法;

2、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。

二. 实验内容

1、X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。试编写汇编语言程序完成以下功能:

(1)计算表达式值(V–(X*Y+Z-720))/X;

(2)将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。

2、BL中的只有一位为0,编写程序测试0所在的位数,并输出提示信息“The X Bit is 0”,要求使用地址表方法实现。

3、在内存Score缓冲区中存放有100个学生的成绩数据,为无符号字节数。设 计程序完成如下功能:根据用户输入的一个2位十进制数,作为查找对象,在该数组中查找,若找到则显示“Y”,若没找到则显示“N” 。

\4. 从键盘读入一个字符串,以Enter结束,字符串不超过50个字符,并打印该字符串;查找该字符串中间是否有‘asm’子串,如果有,输出‘Yes’,否则,输出‘No’)。

\5. 编写一个子程序计算z=f(x,y)=x*y+x-y(x,y,z有符号数字操作数,假设计算结果为16位,可以放在z中)。要求:(1)通过堆栈传送参数x和y;(2)将计算结果按照16进制输出到屏幕上。

三. 实验过程和程序

1、X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。试编写汇编语言程序完成以下功能:

(1)计算表达式值(V–(X*Y+Z-720))/X;

(2)将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。

先编写代码,生成asm文件,使用dosbox的masm生成obj文件,如果有错误则进行再次编写直到没有错误为止重新编译,进行再用link生成exe文件。

*.model small*

*.stack*

*.data*

*x dw 10*

*y dw 2*

*z dw 700*

*v dw 20*

*sum1 dw ?*

*sum2 dw ?*

*.code*

*START: mov ax, @data*

*mov ds, ax*

*mov ax, x*

*imul y*

*add ax, z*

*adc dx, 0*

*sub ax, 720*

*sbb dx, 0*

*sub v,ax*

*sbb dx,0*

*not dx*

*idiv x*

*mov sum1, ax*

*mov sum2, dx*

*mov ax, 4c00h*

*int 21h*

*end START*

2、BL中的只有一位为0,编写程序测试0所在的位数,并输出提示信息“The X Bit is 0”,要求使用地址表方法实现。

*data segment*

*address dw fun8,fun7,fun6,fun5,fun4,fun3,fun2,fun1*

*string8 db ‘The 8 bit is 1$’*

*string7 db ‘The 7 bit is 1$’*

*string6 db ‘The 6 bit is 1$’*

*string5 db ‘The 5 bit is 1$’*

*string4 db ‘The 4 bit is 1$’*

*string3 db ‘The 3 bit is 1$’*

*string2 db ‘The 2 bit is 1$’*

*string1 db ‘The 1 bit is 1$’*

*data ends*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值