汇编语言程序设计第03次作业答案

发布 2022-09-02 06:44:28 阅读 3674

1、已知一数据段中的数据定义如下:datasegment

str1db 0,1,2,3,4,5str2db ‘012345’countequ 30

numbdb 3 dup(2)numwdw 10h,-60hpoindw 0dataends

根据以上数据段的定义,改正下列语句中的错误。(1)movax,str1str1为字节型存储空间,ax为16位寄存器,不能直接mov(2)movbp,offset str2movcl,[bp](3)movsi,offset numbmov[si],’4)movdl,numw+2(5)movdi,ch(6)movbx,offset str1movdh,bx+3(7)inccount(8)movnumb,str2(9)leapoin,numw

bp间接寻址时缺省的段寄存器是ss,str2定义在数据段中[si]寻址的是内存单元,作为目标操作数时应指明操作方式numw为字型存储空间,不能直接mov到8位寄存器中寄存器位宽不一致mov dh,[bx+3]

count是定义的一个替换型的文本变量,在实际程序中无定义不可以在两个内存单元之间直接movlea的目标操作数只能是16位寄存器。

2、已知下列数据段定义:datasegmentnumdw10,20,30,40,50bufdw3dataends

执行下列程序后,ax中的值是多少?movax, seg nummovds, axmovbx, offset numaddbx, buf

movax, [bx]

bx中的值为num+3,所以ax=1e00h

3、设程序中数据的定义如下:nodw?

namedb16dup(0)countdd?length equ$-no

请问length的值为多少?表示什么意义?

length=22,表示从no标号到length之前定义的变量一共占用了22字节的存储空间。

4、已知数据段有如下定义:

firstdb12h,34hseconddb56h,78h

用堆栈指令编一段程序实现将first和second单元的内容互换,first+1和second+1单元的内容互换。

pushword ptrfirstpushword ptrsecondpopword ptrfirstpopword ptrsecond5、设数据段中有10个8位无符号数,定义如下(实际数据请随机设置):

numdb19,250,88,42,60,77,39,100,91,2

编写完整的汇编语言程序,找出这组数据中的最大数、最小数,同时计算平均值(取整),以十六进制的形式显示在屏幕上:

max=??hmin=??h**g=??h

要求给出实际调试运行过的**,打印/抄写在作业纸上。

6、编写完整的汇编语言程序,完成下述显示彩色字符串的功能:

1)显示字符串的功能必须用宏指令实现,在主程序中调用;(2)在0行10列显示绿色字符串hello(属性字02h);

在12行38列显示红色字符串ok(属性字04h);

在24行60列显示黄色字符串goodbye!(属性字0eh)。

汇编语言程序设计作业

题1.编写汇编语言源程序实现从键盘上输入1949至2049年中的某一日,计算并输出该日是这一年的第几天以及星期几。1 提示 通过输入的年 year 月 month 日 day 来计算该日是年内第几天 days 再以 year 1 year 1 4 year 1 100 year 1 400 days...

汇编语言程序设计作业

冒泡法排序 题目 1.程序简介 采用冒泡法进行排序 2.流程图 3 实现输入数据直接在程序中通过数组定义,或用文件方式读入,不要采用scanf include using namespace std define count 20数据个数。void bubblesort long array,int...

《汇编语言程序设计》试卷

姓名班级学号评分。一 判断题 10小题 以下各题中给出了一些86汇编语言语句,请对其合法性作出判定。合法的,记 否则,记 答案记于题后的括号中。不在括号中的内容一律不视为回答。使用其它符号或不能清晰辨认的记法作答被视为答错。不准涂改答案。否则,视为答错。1 mov es,word ptr absd ...