合工大汇编语言程序设计实验报告 下载本文

运行:结果在DS:0208 单元中 为00AB00ABH

(2)寄存器间接寻址方式

程序段编辑:

反汇编:

运行:结果高字存放在dx中,低字存放在ax中(结果为00AB00ABh)

五. 实验体会

通过本实验,实践debug程序中的命令,并在debug下调试运行汇编语言源程序。在实践过程中,解决如何把数据录入存储单元、debug命令如何使用等问题后,知道存数据例如1234进存储单元时 要34 12存,还有掌握了寄存器的寻址方式。

实验二 汇编语言程序设计(顺序、循环)

一. 实验目的

1、掌握顺序和循环程序结构和设计方法;

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

二. 实验内容

1、X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。试编写汇编语言程序完成以下功能: ①计算表达式值(V–(X*Y+Z-720))/X;

②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。 2、求一个班50名学生成绩的平均值(附加题:最大值和最小值,并将结果显示出来)

3、从键盘读入一个字符串,以Enter结束,字符串不超过50个字符,并打印该字符串(附加题:查找中间是否有‘asm’子串。如果有,输出‘Yes’;否则,输出‘No’)。 三. 实验过程和程序

(注:附加题没有做) 实验内容一:

X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。试编写汇编语言程序完成以下功能:①计算表达式值(V–(X*Y+Z-720))/X;②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。 Data segment x dw ? y dw ? z dw ? v dw ? sum1 dw ? sum2 dw ? Data ends Code segment assume cs:code,ds:data start:

mov ax,data mov ds,ax mov ax,x imul y

mov cx,ax

mov bx,dx mov ax,z cwd add cx,ax adc bx,dx sub cx,720 sbb bx,0 mov ax,v cwd sub ax,cx sbb dx,bx idiv x mov sum1,ax mov sum2,dx mov ah,4ch int 21h Code ends end start

实验内容二:求一个班50名学生成绩的平均值(为了方便,只设置了5个学生数据) data segment

grade dw 90,80,80,70,60;平均数76 data ends code segment

assume cs:code,ds:data start:

mov ax,data mov ds,ax xor ax,ax mov cx,5

mov bx,offset grade again: add ax,[bx] add bx,2 loop again mov cx,5