内容发布更新时间 : 2024/12/27 14:27:33星期一 下面是文章的全部内容请认真阅读。
运行:结果在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