最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

实验三 顺序结构程序设计

来源:动视网 责编:小OO 时间:2025-09-26 18:02:43
文档

实验三 顺序结构程序设计

实验三顺序结构程序设计一、实验目的学习数据传送指令和算术运算指令的用法;掌握数据定义伪指令的格式,会用DEBUG中的D命令观察DB、DW、DD存储数据的格式;熟悉汇编语言的基本框架,掌握编写汇编语言程序的基本方法。二、示例试问如下程序执行到exit时,字单元A、B、C、C+1、C+2中的内容各是什么?源程序如下:datasegmentadb0bdb0cdb30,40,50dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,
推荐度:
导读实验三顺序结构程序设计一、实验目的学习数据传送指令和算术运算指令的用法;掌握数据定义伪指令的格式,会用DEBUG中的D命令观察DB、DW、DD存储数据的格式;熟悉汇编语言的基本框架,掌握编写汇编语言程序的基本方法。二、示例试问如下程序执行到exit时,字单元A、B、C、C+1、C+2中的内容各是什么?源程序如下:datasegmentadb0bdb0cdb30,40,50dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,
 实验三    顺序结构程序设计

一、实验目的

学习数据传送指令和算术运算指令的用法;掌握数据定义伪指令的格式,会用DEBUG中的D命令观察DB、DW、DD存储数据的格式;熟悉汇编语言的基本框架,掌握编写汇编语言程序的基本方法。

二、示  例

试问如下程序执行到exit时,字单元A、B、C、C+1、C+2中的内容各是什么?

源程序如下:

data segment

   a  db  0

   b  db  0

   c  db  30,40,50

data  ends

code  segment

     assume  cs:code,ds:data

start:

       mov ax,data

       mov ds,ax

       mov al,c+1

       add al,c

       mov a,al

       mov al,c+1

       add al,c+2

       mov b,al

       add c,10

       add c+1,20

       add c+2,30

exit:  mov ah,4ch

       int 21h

code ends

       end start

注:c db 30,40,50为c=30,c+1=40,c+2=40.

阅读以上程序,分析出结果,并上机验证。

(1)输入以上源程序,以TX4_1.ASM命名。

(2)用MASM 汇编TX3_1.ASM,生成TX4_1.OBJ文件。

(3)用LINK 连接TX3_1.OBJ,生成TX4_1.EXE文件。

(4)用DEBUG调试TX3_1.EXE文件,观测运行结果。

三、实验题

1、求表达式Y=A*X2+B*X+C的值,已知A、B、C分别存放在DATAA、DATAB、DATAC字节单元,X存放在TABL字节单元,结果Y放入RESULT字单元。

要求: ① 在DEBUG下多次修改X的值,观察执行结果Y;

data segment

   DATAA  db  1

   DATAB  db  2

   DATAC  db  3

   TABL db 0

   RESULT db ? 

data  ends

code  segment

     assume  cs:code,ds:data

start:

       mov ax,data

       mov ds,ax

       mov tabl,al

       mov bl,tabl(bl=0=al)

       mul bl(al=al*bl=tabl*tabl)

       mul dataa(al=dataa*tabl*tabl)

       push ax(ax=dataa*tabl*tabl)

       mul datab(al=al*datab)

       pop bx(bx=ax)

       add ax,bx(ax=ax+bx=al*tabl*tabl+al*tabl)

       add ax,datac

       mov result,ax

exit:  mov ah,4ch

       int 21h

code ends

       end start

           ② 修改原程序,从键盘上输入X的值,观察执行结果Y。(见书P471)

X=1,放入al中的是1的ASCII值31,所以用sub al,30h还原al的值,  mov ds,ax

       mov ah,07 (从键盘上输入x的值以ASCII值得形式存入al中)

       int  21h

       sub al,30h(还原x的值)

       mov tabl,al

       mov bl,tabl(将输入的x的值赋给bl,al=bl=x)

       mul bl(al=bl*al=x*x)

       mul data(al=A*al=A*x*x)

       push ax

       mul datab

       pop bx

       add ax,bx

       add ax,datac

       mov result,ax

2、上机完成教材习题3.11(P108),写出正确结果。

四、实验报告

写出程序清单,记录运行结果;总结DEBUG中U、E、D、T、G命令的功能。

U 反汇编字节并显示相应的原语句,其中包括地址和字节值。

E 将数据输入到内存中指定地址。

D 显示一定范围内存地址的内容。

T  从当前段地址开始执行指定的代码数,每执行一次显示所有寄存器(包括标志寄存器)的值。

G 依次运行实验程序。

文档

实验三 顺序结构程序设计

实验三顺序结构程序设计一、实验目的学习数据传送指令和算术运算指令的用法;掌握数据定义伪指令的格式,会用DEBUG中的D命令观察DB、DW、DD存储数据的格式;熟悉汇编语言的基本框架,掌握编写汇编语言程序的基本方法。二、示例试问如下程序执行到exit时,字单元A、B、C、C+1、C+2中的内容各是什么?源程序如下:datasegmentadb0bdb0cdb30,40,50dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top