当前位置:文档之家› 汇编第二次作业(实验)

汇编第二次作业(实验)

汇编第二次作业(实验)
汇编第二次作业(实验)

实验室要求

实验设备安全至关重要,特别是以下几点:

1、严格遵守实验室规章制度;

2、注意人身安全和实验设备的安全;

3、没有编写源代码,原则上不能参加试验;

4、插接或拔掉实验连接线时,必须要关闭实验设备的电源;

5、在加电后,严禁用手触摸芯片管脚或连线的金属部分;

6、严禁私自挪动实验设备;

7、严禁在实验室吃食物、喝饮料,保持实验室的清洁卫生;

8、离开实验室前,要收拾好实验平台,并按要求放在指定的

位置。

实验时间地点安排

实验工具:Debug调试实验指导书

一、编辑、连接

1、利用写字板等编辑软件编辑一个求三个数最大值的源程序MAX.ASM

2、利用MASM进行编译,并成功, 查看MAX.LST 文件,与MAX.ASM进行对比;

3、利用LINK进行连接,生成执行文件MAX.EXE。

参考源程序:MAX.ASM

DA TA SEGMENT

X DB 115

Y DB 23

Z DB -20

MAX DB ?

DA TA ENDS ;数据定义

CODE SEGMENT

ASSUME DS:DA TA,CS:CODE

START:

MOV AX,DA TA

MOV DS,AX ;数据段初始化

MOV AL,X ;X取到AL中

CMP AL,Y ;X和Y比较

JG NEXT ;X>Y转NEXT

MOV AL,Y ;否则Y取到AL中

CMP AL,Z ;Y和Z比较

JG EXIT ;Y>Z转EXIT

MOV AL,Z ;否则Z取到AL中

JMP EXIT ;转EXIT

NEXT:

CMP AL,Z ;X和Z比较

JG EXIT ;X>Z转EXIT

MOV AL,Z ;否则Z取到AL中

EXIT:

MOV MAX,AL ;AL中内容送MAX单元

MOV AH,4CH

INT 21H ;返回DOS

CODE ENDS

END START

二、调试

(1)调入:

c:\masm>debug max.exe

-r

AX=0000 BX=0000 CX=003D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=1458 ES=1458 SS=1468 CS=1469 IP=0000 NV UP EI PL NZ NA PO NC 1469:0000 B86814 MOV AX,1468

-u 1469:0

1469:0000 B86814 MOV AX,1468

1469:0003 8ED8 MOV DS,AX

1469:0005 A00000 MOV AL,[0000]

1469:0008 3A060100 CMP AL,[0001]

1469:000C 7F0F JG 001D

1469:000E A00100 MOV AL,[0001]

1469:0011 3A060200 CMP AL,[0002]

1469:0015 7F0F JG 0026

1469:0017 A00200 MOV AL,[0002]

1469:001A EB0A JMP 0026

1469:001C 90 NOP

1469:001D 3A060200 CMP AL,[0002]

1469:0021 7F03 JG 0026

1469:0023 A00200 MOV AL,[0002]

1469:0026 A20300 MOV [0003],AL

1469:0029 B44C MOV AH,4C

1469:002B CD21 INT 21

(2)必须执行才能调试:

-g=0,2b

-r

AX=4C73 BX=0000 CX=003D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=1468ES=1458 SS=1468 CS=1469 IP=002B OV UP EI NG NZ AC PE CY 1469:002B CD21 INT 21

-d 1468:0

1468:0000 73 17 EC 73 00 00 00 00-00 00 00 00 00 00 00 00 s..s............

1468:0010 B8 68 14 8E D8 A0 00 00-3A 06 01 00 7F 0F A0 01 .h......:.......

1468:0020 00 3A 06 02 00 7F 0F A0-02 00 EB 0A 90 3A 06 02 .:...........:..

1468:0030 00 7F 03 A0 02 00 A2 03-00 B4 4C CD 21 53 6D 83 ..........L.!Sm.

1468:0040 C4 06 FF 76 06 FF 76 04-8D 86 74 FF 50 E8 5A FD ...v..v...t.P.Z.

1468:0050 8B E5 5D C3 55 8B EC 83-EC 08 56 A1 58 27 39 46 ..].U.....V.X'9F 1468:0060 06 77 03 E9 8A 00 A1 36-22 2B 06 58 27 89 46 FE .w.....6"+.X'.F.

1468:0070 2B C0 89 46 F8 89 46 FA-89 46 FC EB 22 90 8A 46 +..F..F..F.."..F

三、问题

有一个程序的数据区内容如下(部分内容):

1463:0000 73 17 EC 00 00 00 00 00-00 00 00 00 00 00 00 00

该程序的DEBUG反汇编代码如下:

1464:0000B86314MOV AX,1463

1464:00038ED8MOV DS,AX

1464:0005A00000MOV AL,[0000]

1464:00083A060100CMP AL,[0001]

1464:000C7F0F JG001D

1464:000E A00100MOV AL,[0001]

1464:00113A060200CMP AL,[0002]

1464:00157F0F JG26

1464:0017A00200MOV AL,[0002]

1464:001A EB0A JMP26

1464:001C90NOP

1464:001D3A060200CMP AL,[0002]

1464:00217F03JG26

1464:0023A00200MOV AL,[0002]

1464:0026A20300MOV[0003],AL

1464:0029B44C MOV AH,4C

1464:002B CD21INT21

1464:002D

请回答以下问题(填空,每空2分,小计14分):

(1)、该程序的数据段的段地址是:( 1463 )H,代码段的段地址是:( 1464 ) H,代码段长度是:(002dH )H;

(2)、如果当前状态为:

AX=1473 BX=0000 CX=003D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=1463 ES=1453 SS=1463 CS=1464 IP=000C NV UP EI PL NZ AC PE NC

1464:000C 7F0F JG 001D

那么,当前将执行的指令CS:IP = (1464:000C )H,该指令的机器指令代码是( 7F0F )H;该指令执行后如转移条件为真值时其下一条将执行的指令物理地址是:(1464:001D) H,否则下一条将执行的指令物理地址是:( 1464:000E ) H。

实验、作业一、寻找最大和最小数实验

一、实验目的

1、学习循环程序结构,掌握编写循环处理程序的方法和技巧。

2、通过循环结构程序熟悉汇编语言程序设计的主要方法。

3、了解和掌握程序设计过程中算法的选择。

4、掌握汇编语言调试方法。

二、实验内容

以buff开始的内存单元中有10个有符号数(字节型DB):

-37、28、-115、-2、98、-100、93、120、56、-99

请编写程序,找出最大的数并存入MAX单元中,同时也找出最小的数并存入MIN单元中,在Debug下运行程序,查看数据区MAX和MIN的内容检验运行结果。

三、编程提示

1、在数据段设置buff 区(DB)存放10个被测试的数,再分别设置字节数据MAX、MIN。

例如:buff db -37、28、-115、-2、98、-100、93、120、56、-99

MAX db

MIN db

2、通过一个循环程序完成比较,先用第一个数与第二个,把较小的数放在AL中,较大

的数放在AH中。

3、以后每次都用AL与后面的数比较,把小的总放在AL中;然后再用AH与后面的数比

较,把大的放在AH中;比较结束后AL和AH分别放最小和最大数。

四、实验步骤

1、在EDIT或其它编辑方式下输入源程序,并以XXX.ASM名保存。

2、用MASM 文件汇编源程序,C>MASM XXX; 如有错误,回到第一步,如没错误,到第

三步。

3、用LINK连接程序,C>LINK XXX; 形成XXX.EXE文件。

4、在DEBUG调试环境下调试并运行XXX.EXE程序。

C>DEBUG XXX.EXE回车

首先用R指令,然后使用U指令查看自己所编写的程序,确定断点后,使用G命令

执行程序到断点,查看结果,程序运行结束后,用 D DS:0 检查数据区MAX及MIN

内容,检查结果是否正确。

五、思考

1、查看DOS操作系统把可执行程序装载到的内存的首地址及结束地址。

2、查看MAX和MIN的段地址及偏移地址。

3、分别计算数据段和代码段占用的地址空间大小。

实验、作业二、统计学生成绩

一、实验目的

1、熟悉汇编语言各种跳转指令的功能和用法。

2、学会用程序流程图来分析和设计分支程序。

3、通过顺序和分支结构来熟悉汇编语言程序设计的主要方法。

4、了解和掌握程序设计过程中算法的选择。

二、实验内容

设有20个学生成绩分别56、78、67、40、87、99、63、51、74、100,90,80,68、88、55、66、84、96、45、73分。编写程序实现统计低于60分、60-69分、70-79分、80-89分、90-99分及100分的人数,并分别存放在s5、s6、s7、s8、s9、s10单元中。

三、实验编程提示

1、设计实现算法,并画出程序流程图。

2、定义一数据段,首先定义一变量组存储学生的分数,再定义6个字节变量s5、s6、

s7、s8、s9、s10用于统计各分数段的人数。

3、在代码段中实现程序功能,程序开始应实现初始化存储变量及程序循环次数;并通

过比较指令实现判断分支。

四、实验步骤

1、在EDIT或其它编辑方式下输入源程序,并以XXX.ASM名保存。

2、用MASM 文件汇编源程序,C>MASM XXX; 如有错误,回到第一步,如没错误,到第

三步.

3、用LINK连接程序,C>LINK XXX; 形成XXX.EXE文件。

4、在DEBUG环境下运行调试程序:C> DEBUG XXX.EXE回车,使用U命令反汇编自己

编写的程序,查找到断点地址,用G命令使程序执行到完成初始化的功能;此时使用D 命令查看数据段的内容,是否有学生的分数并查看s5、s6、s7、s8、s9、s10字节变量的地址及内容。然后查找程序功能结束的命令对应的断点地址,用G命令使程序运行到断点;此时再使用D命令查看存储各分数段的学生人数是否正确。如正确,调试结束;

否则,从新单步调试查找错误。再从第一步修改源程序开始。

五、思考

1、请问存放学生分数的变量物理地址是什么?

2、请问各分数段的变量地址是多少?

3、如果想在屏幕上显示结果将怎样编写下面的程序?

实验、作业三、统计键盘输入字符、数字个数

一、实验目的

1、学习循环程序结构,掌握编写循环处理程序的方法和技巧。

2、通过循环结构程序熟悉汇编语言程序设计的主要方法。

3、了解和掌握程序设计过程中算法的选择。

4、掌握汇编语言的调试方法。

二、实验内容

从键盘输入一系列字符(每种字符不超过9)并以回车符结束,请统计出字母、数字及其它字符的个数,最后在屏幕上显示计数结果。

三、实验编程提示

1、在数据段中定义三个字节变量分别存放数字、字符、及其它字符的个数。

2、在代码段中设计一循环程序接收键盘输入的字符,并在循环程序中判断输入字符的

类型,根据结果计数变量值,循环程序以回车符退出。

3、提示:MOV AH,1

INT 21H

等待键盘输入,输入字符的ASCII码放在AL寄存器中。

提示:MOV AH,2

INT 21H

在屏幕上显示单个字符,被显示字符的ASCII码放在DL寄存器中。

四、实验步骤

1、在EDIT或其它编辑方式下输入源程序,并以XXX.ASM名保存。

2、用MASM 文件汇编源程序,C>MASM XXX; 如有错误,回到第一步,如没错误,到第

三步。

3、用LINK连接程序,C>LINK XXX; 形成XXX.EXE文件。

4、运行程序:C> XXX回车,屏幕光标应停在一行的起始位置,并等待键盘输入字符;

如输入若干字母和数字字符后,输入回车字符,屏幕上应显示出所统计的字母、数

字及其它字符的个数,说明程序运行正确;否则进入调试程序步骤。

调试程序:C>DEBUG XXX.EXE回车

首先用R指令,然后使用U指令查看自己所编写的程序,确定断点后,使用G 命令执行程序到断点,查看结果是否正确,不断扩大运行程序的范围直到找到问题。

五、思考

1、回车字符的ASCII码是什么?

2、统计出的数值如何在屏幕上显示出来。如果统计个数超过9时,又将如何处理?怎样判断输入的是字母、数字及其它字符?

实验、作业四、建立学生名次表

一、实验目的

1、学习循环程序结构,掌握编写循环处理程序的方法和技巧。

2、通过循环结构程序熟悉汇编语言程序设计的主要方法。

3、了解和掌握程序设计过程中算法的选择。

4、掌握汇编语言的调试方法。

二、实验内容

以grade为首地址的10个字的数组中保存了学生的成绩,要求建立10个字的rank数组,并根据grade中的学生成绩将学生名次填入rank数组中。

三、实验编程提示

1、在数据段中,先定义一个字数组变量grade,并存入10个学生的分数,然后在定义

一个字数组变量rank dw dup (?)用于存放学生的名次。

2、一个学生的名次等于成绩高于该学生的人数加1。

3、可以采用两重循环结构来实现。

4、内层对应于每个学生的名次计算,在进入内循环之前使用指令mov ax,grade[bx]

先把此学生的分数放在ax寄存器中,grade 的首地址放在si,当前被测学生的相对地址指针放在bx;进入循环后可用指令cmp ax,[si]计算此学生的名次,并把名次存入dx 中,内循环结束后用mov rank[bx],dx 指令把该学生名次存入。

5、外循环解决所以学生的名次计算;在退出内循环,并返回外循环之前要add bx,2

使之指向下一个被测学生,注意在外循环重新初始化所需寄存器。

四、实验步骤

1、在EDIT或其它编辑方式下输入源程序,并以XXX.ASM名保存。

2、用MASM 文件汇编源程序,C>MASM XXX; 如有错误,回到第一步,如没错误,到第

三步。

3、用LINK连接程序,C>LINK XXX; 形成XXX.EXE文件。

4、C>debug xxx.exe 回车,用r命令找到第一条指令,再用u命令找到程序结束的断

点,再用G命令执行到断点;此时用D命令查看数据段的内容,前10个数据是学生分数,后面就应是所对应名次,如果正确,调试结束;否则分块执行查找错误,直到正确。

五、思考

1、内循环和外循环分别用什么指令实现?

请问存放分数、名次的起始地址分别是多少?

实验、作业五、显示ASCII码

一、实验目的

1、了解汇编语言子程序的概念。

2、掌握汇编语言子程序的定义、调用和返回。

3、掌握设计汇编语言子程序及过程的基本方法。

4、清楚调用指令CALL及返回指令RET执行时堆栈内容及指针的变化。

5、掌握子程序和主程序间的参数传递方法(地址表传递参数)。

二、实验内容

试编写一个有主程序和子程序结构的程序模块。

将两个8位和16位二进制数分别转换为相应二进制数的ascii码。

三、实验编程提示

1、主程序提供转换数据的地址、转换后存放ASCII码的首地址共2个参量的地址。

首先在数据段中定义两个变量分别存放8位和16位的数据,再定义一个空变量区用于存放二进制相应的ASCII码,还要定义一个地址表用于存上述地址。

例如: zhu8 db 35h(也可通过键盘输入)

Zhu16 dw 0ab39h(也可通过键盘输入)

Ascbuf db 32 dup(0)

Adr_tab dw 3 dup(0)

2、主程序再将这两个地址组成一个地址表,并将地址表的首地址为入口参数传递给子

程序。

Mov adr_tab,offset zhu8

Mov adr_tab+2,offset zhu16

Mov bx,offset adr_tab

3、子程序的任务是实现二进制数的ASCII码转换。

4、子程序可设置两个入口地址:一个为BIN8,转换8位二进制;一个为BIN16,转换16位二进制。

BIN8: MOV DI,[BX]

MOV DH,[DI]; DH取得待转换8位二进制数

而 BIN16: MOV DI,[BX+2]

MOV DX,[DI];DX取得待转换16位二进制数

四、实验步骤

1、根据上述算法先画出程序框图。

2、在EDIT或其它编辑方式下输入源程序,并以XXX.ASM名保存。

3、用MASM 文件汇编源程序,C>MASM XXX; 如有错误,回到第一步,如没错误,到第三步.

4、用LINK连接程序,C>LINK XXX; 形成XXX.EXE文件。

5、运行程序:C> DEBUG XXX.EXE 回车

首先使用R命令,再通过U命令查看反汇编程序找到调用子程序前的断点。G命令执行到断点,D命令看数据段的内容是否正确。

执行CALL BIN8后,查看数据段相应地址是否有8位二进制的ASCII存入。

执行CALL BIN16后,查看数据段相应地址是否有16位二进制的ASCII存入。

如果程序有问题,则在debug环境下查找错误后,回到第一步。

如果想再C>下执行程序,可加入DOS调用显示,看屏幕显示。

6、显示信息可使用DOS调用MOV AH,9;INT 21H;DX存显示信息的偏移地址。

五、思考

1、子程序和主程序之间的参数传递是通过什么方式实现的?

2、在DEBUG环境下观察执行CALL指令时CS、IP寄存器是否变化。

3、在DEBUG环境下观察执行CALL、RET时堆栈的变化。

实验、作业六、进制之间的转换与显示

一、实验目的

1、学习循环程序结构,掌握编写循环处理程序的方法和技巧。

2、通过循环结构程序熟悉汇编语言程序设计的主要方法。

3、了解和掌握程序设计过程中算法的选择。

4、掌握汇编语言的调试方法。

二、实验内容

编写一汇编语言程序,要求从键盘接收一个四位的十六进制数,并在显示器上显示与之等值的二进制数。

四、实验编程提示

1、设计一个循环四次的循环程序来接收键盘输入的四位十六进制数。

2、使用DOS调用mov ah,1

int 21h接收键盘输入的字符,并把字符的ASCII码转换成相应的数值;注意把输入字符相应的ASCII码变成数时,分两种情况:第一种是处理0-9之间的字符,只需减去30H就变成数;第二种是处理A-F(a-f)的字符,还需分大小写的不同处理。

3、在接收第二、三、四个字符时,要在前面输入数的基础上乘以10H后加上本次输入

的数,因此需一个寄存器或变量存储每次生成的数。

4、输入结束后,四位十六进制数已存储在某寄存器或变量里,再设计一循环16次的

循环程序,在程序中可以通过逻辑左移(还有其它方法)指令使二进制位移入CF标志中,再用JC(JNC)判断CF=0或1。如果CF=1,则DL=31H 通过DOS功能显示“1”;如果CF=0,则DL=30通过DOS功能调用显示“0”。

五、实验步骤

1、在EDIT或其它编辑方式下输入源程序,并以XXX.ASM名保存。

2、用MASM 文件汇编源程序,C>MASM XXX; 如有错误,回到第一步,如没错误,到第

三步。

3、用LINK连接程序,C>LINK XXX; 形成XXX.EXE文件。

4、运行程序:C> XXX回车,屏幕光标应停在一行的起始位置,并等待键盘输入十六

进制字符;如输入四位十六进制后回车,在屏幕上应显示相应的16位二进制,此时说明程序运行正确;否则进入调试程序步骤。

六、思考

请观察每次输入一位十六进制后,存储变量(或寄存器)的变化。至少想出两种方法显

示16位二进制。

汇编语言大作业

辽宁师范大学计算机与信息技术学院综合性实验报告 课程名称:汇编语言 实验题目:菜单程序设计 学生姓名:孙蕾 专业:计算机科学与技术 学号:20101118050005 实验日期: 2012.5.10 实验成绩:

一、实验目的 设计菜单程序,实现各种功能,设计分支程序,重键盘输入字符。二、实验内容 (1)参考示例5-8设计菜单程序,包含示例5-2、示例5-3及退出三个菜单项。将示例5-2改为从键盘输入X;示例5-3增加显示功能,显示出统计个数。(P120、P101、P106) (2)选作:参考P213第9章示例9-3,在屏幕上清屏、开窗口,将菜单程序带颜色地显示在窗口中。提示:可利用P223宏库9-4.mac中的功能。 三、实验过程(含结果抓图) 1.输入程序代码 data segment x dw ? y dw ? cc db 0ah,0dh,'Y=$' mess0 db 0ah,0dh,0dh,'****************MENU******************' db 0ah,0dh, '*1. calculate Y=5X-18: *' db 0ah,0dh, '*2. count the numbers of a string: *' db 0ah,0dh, '*3. exit *' db 0ah,0dh, '*^^ please select... *' db 0ah,0dh, '**************************************' db 0ah,0dh,' $' mess1 db 0ah,0dh,0dh,'please input a string :$' c db 0ah,0dh,0dh,'please input a number :$' mess2 db 0ah,0dh,'numb:$' mess3 db 0ah,0dh,'capi:$' mess4 db 0ah,0dh,'lett:$' mess5 db 0ah,0dh,0dh,'thank you for using!!$' numb db 10 dup(?) capi db 10 dup(?) lett db 10 dup(?) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax let0:mov dx,offset mess0 mov ah,9 int 21h

汇编实验报告(详细版)

计算机组成与汇编语言(实验报告) 内容: 实验一、六、七、八 院系专业:计算机学院计算机科学与技术 姓名:xxxxxxxxx 学号: 2011004xxxxx 完成时间:2012年12月1日

计算机组成与汇编语言实验报告 姓名xxxx 学号2011004xxxxx 计分 专业软件工程班级xxxx 实验日期2012年 12 月 1日实验名称实验一数制转换 实验目的 ●熟悉各种进制数据之间的相互转换方法。 ●掌握二-十进制数据的相互转换程序设计。 实验内容 1.将编写好的程序1输入、编译、连接并运行。 程序1清单 #include #include #include void main() { int i,l,s0=0,s=0; char a[17]; while(l!=16) { printf("请输入一个16位的二进制数:\n"); gets(a); l=strlen(a); for(i=0;i<16;i++) { if(a[i]!='0'&&a[i]!='1') {

printf("输入的二进制数不正确!!"); break; } } } if(a[15]=='1') s++; for(i=1;i<16;i++) { if(a[15-i]=='1') s+=(1<

说明:如果不是16位二进制则会提示错误。 2.将编写好的程序2输入、编译、连接并运行。 程序2清单 #include #include void main() { int t0,t1,t2,t3,i,j; int a[16]; printf("请输入一个十进制数:"); scanf("%d",&t0); t1=t0; for(i=0;i<16;i++) { t2=t1/2; if(t2>1) a[i]=t1%2; else if(t1==1) { a[0]=1; for(i=1;i<16;i++) a[i]=0; } else if(t1==2) { a[i]=0; a[i+1]=1; for(j=i+2;j<16;j++)

计算机视觉第二次作业实验报告

大学计算机视觉实验报告 摄像机标定 :振强 学号:451 时间:2016.11.23

一、实验目的 学习使用OpenCV并利用OpenCV进行摄像机标定,编程实现,给出实验结果和分析。 二、实验原理 2.1摄像机标定的作用 在计算机视觉应用问题中,有时需要利用二位图像还原三维空间中的物体,从二维图像信息出发计算三维空间物体的几何信息的过程中,三维空间中某点的位置与二维图像中对应点之间的相互关系是由摄像机的几何模型决定的,这些几何模型的参数就是摄像机参数,而这些参数通常是未知的,摄像机标定实验的作用就是通过计算确定摄像机的几何、光学参数,摄像机相对于世界坐标系的方位。 2.2摄像机标定的基本原理 2.2.1摄像机成像模型 摄像机成像模型是摄像机标定的基础,确定了成像模型才能确定摄像机外参数的个数和求解的方法。计算机视觉研究中,三维空间中的物体到像平面的投影关系即为成像模型,理想的投影成像模型是光学中的中心投影,也称为针孔模型。实际摄像系统由透镜和透镜组组成,可以由针孔模型近似模拟摄像机成像模型。 图2.1 针孔成像 2.2.2坐标变换 在实际摄像机的使用过程中,为方便计算人们常常设置多个坐标系,因此空间点的成像过程必然涉及到许多坐标系之间的相互转化,下面主要阐述几个重要坐标系之间的转换关系。

2.2.2.1世界坐标系--摄像机坐标系 图2.2 世界坐标系与摄像机坐标系空间关系 世界坐标系与摄像机坐标系之间的转换关系为: ????? ? ????????????=???? ????????111w w w T c c c Z Y X O T R Z Y X R 和T 分别是从世界坐标系到摄像机坐标系的旋转变换和平移变换系数,反映的是世界坐标系和摄像机坐标系之间的关系,因此称为外参数。 2.2.2.2物理坐标系--像素坐标系 图2.3 像素坐标系

汇编语言课后习题答案

2.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12345678H,[21200H]~[21203H]依次存放2A4C B765H,说明下列每条指令执行完后AX寄存器的内容。 (1)mov ax,1200h (2)mov ax,bx (3)mov ax,[1200h] (4)mov ax,[bx] (5)mov ax,[bx+1100h] (6)mov ax,[bx+si] (7)mov ax,[bx][si+1100h] 〔解答〕 (1)AX=1200H (2)AX=0100H (3)AX=4C2AH;偏移地址=bx=0100h (4)AX=3412H;偏移地址=bx=0100h (5)AX=4C2AH;偏移地址=bx+1100h=1200h (6)AX=7856H;偏移地址=bx+si=0100h+0002h=0102h (7)AX=65B7H;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h 〔习题2.2〕指出下列指令的错误 (1)mov cx,dl (2)mov ip,ax (3)mov es,1234h (4)mov es,ds (5)mov al,300 (6)mov[sp],ax (7)mov ax,bx+di

(8)mov20h,ah 〔解答〕 (1)两操作数类型不匹配 (2)IP指令指针禁止用户访问 (3)立即数不允许传给段寄存器 (4)段寄存器之间不允许传送 (5)两操作数类型不匹配 (6)目的操作数应为[SI] (7)源操作数应为[BX+DI] (8)立即数不能作目的操作数 〔习题2.5〕已知SS=2200H、SP=00B0H,画图说明执行下面指令序列时,堆栈区和SP的内容如何变化?mov ax,8057h push ax mov ax,0f79h push ax pop bx pop[bx] 〔解答〕 mov ax,8057h push ax mov ax,0f79h push ax pop bx;bx=0f79h pop[bx];DS:[0f79h]=8057h

汇编语言程序设计第二次实验题目

《汇编语言程序设计实验》 第二次上机实验任务 实验名称:实验二分支程序、循环程序的设计。 一.实验目的和要求 1、熟悉分支、循环程序的结构及控制方法,掌握分支、循环程序的调试方法; 2、加深对转移指令及一些常用的汇编指令的理解; 3、加深对常用DOS功能调用指令的理解,进一步熟悉TD的使用。 二.实验内容 设计实现一个学生成绩查询的程序。 1、实验背景 在以BUF为首址的字节数据存储区中,存放着n个学生的课程成绩表(百分制),每个学生的相关信息包括:姓名(占10个字节,结束符为数值0),语文成绩(1个字节),数学成绩(1个字节),英语成绩(1个字节),平均成绩(1个字节)。 例如: N EQU 1000 BUF DB ‘zhangsan’,0,0 ;学生姓名,不足10个字节的部分用0填充 DB 100, 85, 80,? ; 平均成绩还未计算 DB ‘lisi’,6 DUP(0) DB 80, 100, 70,? DB N-3 DUP( ‘TempValue’,0,80,90,95,?) ;除了3个已经具体定义了学生信息的成绩表以 外,其他学生的信息暂时假定为一样的。 DB ‘wangwu’,0,0,0,0 DB 85, 85, 100, ? 2、功能一:提示并输入学生姓名 (1)使用9号DOS系统功能调用,提示用户输入学生姓名。 (2)使用10号DOS系统功能调用,输入学生姓名。输入的姓名字符串放在以in_name为首址的存储区中。 (3)若只是输入了回车,则回到“(1)”处重新提示与输入;若仅仅输入字符q,则程序退出,否则,准备进入下一步处理。 3、功能二:以学生姓名查询有无该学生 (1)使用循环程序结构,在成绩表中查找该学生。 (2)若未找到,就提示用户该学生不存在,并回到“功能一(1)”的位置,提示并重新输入姓名。 (3)若找到,则将该学生课程成绩表的起始偏移地址保存到POIN字变量中。 提示:字符串比较时,当采用输入串的长度作为循环次数时,若因循环次数减为0而终止循环,则还要去判断成绩表中名字串的下一个字符是否是结束符0,若是,才能确定找到了。 4、功能三:计算所有学生的平均成绩 使用算数运算相关指令计算并保存每一个学生的平均成绩。 平均成绩计算公式:(A*2+B+C/2)/3.5,即将语文成绩A乘以权重2、英语成绩C除以权重2后,与数学成绩B一起求和,再计算该生的平均成绩。要求避免溢出。 提示:使用循环程序结构,注意寻址方式的灵活使用。把小数3.5转换成分数后再运算避免使用浮点数指令。

第二次作业及参考答案

第二次作业及参考答案 1如何设计实验条件使欲了解的电极基本过程(如电化学反应过程)成为电极系统的受控过程? 答:设计实验条件使欲了解的电极基本过程成为电极系统的受控过程,需要了解该电极过程在电极总过程中的具体位置。例如对于简单电极过程,电极过程等效电路为: 要使电化学反应过程(等效电路元件为Rct)成为电化学测量过程中电极过程的受控步骤,即要使得电极过程的等效电路简化为 则应该设计如下实验条件: (1)采用鲁金毛细管、高导电率的支持电解质或断电流法、恒电位仪正反馈法等措施,以减小或补偿掉电解液欧姆电阻,电极的电子导体选用高导电率材料作电子导电物质,以减小或忽略掉电子导体的欧姆电阻; (2)电化学测量时采用小幅值外加激励信号,当外加激励作用于电极一段时间、双电层充(放)电结束但浓差极化还没出现时进行测量,以忽略双电层充放电过程和浓差极化的影响。 (3)当电化学反应物可溶时,可采用旋转圆盘电极、在适宜的高转速下对电极进行测量,以忽略浓差极化对电极过程研究的干扰。 2什么是支持电解质?作用是什么? 答:支持电解质:电导率强、浓度大、在电化学测量过程中承担溶液电迁移任务而不参与电化学反应的物质。可以使溶液的离子强度和电导率在测量过程中保持稳定,获得重现性良好的可靠数据。作用:(1)增强溶液导电性,减小溶液欧姆压降;(2)承担溶液电迁移任务,消除反应物或产物的电迁移传质;(3)支持电解质浓度大,离子迁移数大,溶液离子强度主要取决于支持电解质,可以忽略测量过程中因反应物或产物离子消耗引起的离子强度的变化,电极反应各物种扩散系数可近似视为常数;(4)有利于紧密双电层电容的构建,减小分散层电势(1电势)的影响;(5)加入支持电解质后溶液密度大,可以忽略因电活性物质浓度梯度引起的溶液密度差,从而减小或忽略界面附近的对流传质。 3 工作电极分类? 答:按电极是否作为反应物参与电极反应,工作电极分为两类:第一类工作电极和第二类工作电极。第一类工作电极可称为活性工作电极,电极既承担电子导电的任务,又作为反应物参与电极反应。第二类工作电极又称为惰性工作电极,

汇编语言习题

汇编语言习题 一、单项选择题 1. 汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( )。 A、名字项 B、操作项 C、操作数项 D、注释项 2. 在汇编语言程序中,对END语句的叙述正确的是()。 A、是一可执行语句 B、表示程序执行到此结束 C、表示源程序到此结束 D、在汇编后要产生机器码 3. 汇编语言源程序中,每个语句可由四项组成,其中名字项是一个符号,下面列出的有效名字是() A、Variable B、First & ld C、0FFFFH D、'Memphis' 4.用一条指令仅实现将BX+SI=>AX的方法是() A、XCHG AX,[BX][SI] B、MOV AX,[BX+SI] C、LEA AX,BX[SI] D、LEA AX,[BX][SI] 5.设 SP初值为2000H,执行指令"PUSH AX"后,SP的值是() A、1FFFH B、1998H C、2002H D、1FFEH 6.条件转移指令JC产生程序转移的条件是() A、CF=1 B、CF=0 C、CF=1和ZF=1 D、CF=1和ZF=0 7.选用串操作指令时,错误的操作是() A、置方向标志位 B、根据串操作指令设置重复次数并送入CX C、设置源操作数及目的操作数指针 D、源操作数和目的操作数都可以加段超越 8.设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1。执行SBB AL,[SI]后,正确的结果是() A、AL=5FH SF=1 CF=1 B、AL=60H SF=1 CF=0 C、AL=5FH SF=0 CF=1 D、AL=60H SF=0 CF=0 9.设AX=1000H,执行NOT AX指令后,正确的结果是() A、AX=1001H B、AX=0EFFH C、AX=1000H D、AX=0111H 10. 设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( ) A、85B92H B、86192H C、BB690H D、12169H 11. 可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是() A、AX,BX,CX,DX B、DS,ES,CS,SS C、SP,BP,IP,BX D、SI,DI,BP,BX 12. 循环指令LOOPNZ终止循环的条件是( )。 A、CX=0,且ZF=0 B、CX=0,或ZF=1 C、CX10,且ZF=0 D、CX10,或ZF=1 13. 设AH=0,AL=06H,BL=09H,执行指令 ADD AL,BL AAA 之后,其结果应是()。 A、 AH=01,AL=05 B、 AH=1 AL=15 C、 AH=0 AL=0FH D、 AH=0 AL=05 14. 下面的数据传送指令中,错误的操作是()。 A、 MOV SS:[BX+DI],1000H B、 MOV DX,1000H C、 MOV WORD PTR[BX],1000H D、 MOV DS,2000H 15.DA1 EQU BYTE PTR DA2 DA2 DW 0ABCDH ┇ SHL DA1,1 SHR DA2,1

dsp大作业

一、简答题:(要求:手写,须写出各题必要的知识点,本大题共30分,每小题5分。) 1、可编程DSP芯片有那九大特点? 2、TMS320C54x芯片的流水线操作共有多少个操作阶段,每个阶段执行什么任务,完成一条指令需要那些操作周期? 3、DSP系统硬件设计过程都有那些步骤?

4、TMS320C54x的数据寻址方式各有什么特点,应该应用在什么场合场所? 5、链接器能完成什么工作?链接器命令文件中,MEMORY命令和SECTION命令的任务是什么? 6、什么是“自举”? 二、分析题:(要求:手写,结果需要有一定的分析计算过程,本大题共55分,每小题5分。)

1、已知:(80H)= 20H,(81H)= 30H。 LD #0, DP LD 80H, 16,B ADD 81H, B 运行以上程序后,DP、B分别等于多少? 2、回答标准串行口数据的发送和接收过程。 3、已知:A = FFFD876624, T = 0000,则运行EXP A指令后,A和T各为多少? 4、已知:B = 420D0D0D0D, T = FFF9,则运行NORM B指令后,B和T各为多少? 5、在不含循环的程序中,RPTZ #9语句和其前一句、后一句以及后第二句各运行几次? 6、说明语句: STM #0080H, IMR的功能?

7、已知中断向量TINT = 014H,中断向量地址指针IPTR = 0111H,求中断向量地址是多少? 8、已知(30H)=50H,AR2=40H,AR3=60H,AR4=80H MVKD 30H, *AR2 MVDD *AR2, *AR3 MVDM *AR3, *AR4 运行以上程序后,(30H),(40H)、*AR3,AR4的值分别是多少? 9、在堆栈操作中,PC当前地址为4020h,SP当前地址为0013h,运行PSHM AR7后,PC和SP的值分别是多少? 10、请仔细分析下列程序代码,并说明每句程序代码的作用。 sample.out -m sample.map -stack 100 sample.obj meminit.obj -l rts.lib MEMORY { PAGE 0: VECT: origin = 0xff80, length 0x80 PAGE 0: PROG: origin = 0x2000, length 0x400 PAGE 1: DATA: origin = 0x800, length 0x400 } SECTIONS {

汇编实验报告2-1

《汇编语言程序设计》第二次上机2-1实验报告 院系:计算机科学与技术 专业:信息安全 班级:0903班 姓名: 学号: 时间:2011-6-6 地点:南一楼808

一、实验目的 (3) 二、题目与实验要求 (3) 三、寄存器分配和变量定义说明: (3) 四、流程图 (5) 五、源程序及注释 (7) 六、实验步骤 (13) 七、实验记录 (13) 八、体会 (16)

一、实验目的 1、加深对一些常用的汇编指令的理解; 2、加深对常用DOS功能调用指令的理解; 3、进一步熟悉TD的使用。 二、题目与实验要求 1、《80X86汇编语言程序设计》教材中 P95的 3.7 题。 要求:(1)将该题改成一完整的程序(可以省略实验报告中的程序框图)。 (2)请事先指出依次执行每条程序指令后(AX)的内容。 (3)请事先指出执行ADD、SUB、SAL、RCL指令后,CF、ZF的值。 (4)记录上机执行后与(2)、(3) 中对应的内容。 2、《80X86汇编语言程序设计》教材中 P94的 3.3 题。 要求:(1)将该题改成一完整的程序,其中数据段的定义为习题3.1中的数据段(可以省略实验报告中的程序框图)。 (2)请事先画出数据段中数据的存储形式。 (3)请事先指出依次执行每条程序指令后相应寄存器中的内容。 (4)请事先给出各调指令在汇编后的形式。 (5)比较上机执行后,看到的各项内容是否与(2)、(3) ,(4)内容一致。 不一致的应分析错误原因。 3、《80X86汇编语言程序设计》教材中 P96的 3.11 题。 要求:(1)请事先指出程序运行结束后,显示器显示的内容。 (2)若将NUM的定义改成如下形式: NUM DB 35 显示的结果是什么? (3)若将NUM的定义改成如下形式: NUM DB 59 显示的结果是什么? (4)指出程序运行后看到的结果,若不一致,分析产生错误的原因。 4. 从键盘输入两串字符分别存入BUF1和BUF2区,比较两串内容是否相等,相等显示“MATCH !”, 不相等显示“NO MATCH !”。 要求:(1) 使用10号功能调用输入字符串; (2) 使用9号功能调用输出提示信息; 提示:先比较长度是否相等。 5 选做题 输入一个无符号的数字串,然后以16进制形式显示出串的值。 例如: INPUT A NUMBER : 59 RESULT : 3BH 其中下划线上的内容(59)为程序运行时输入的串。 三、寄存器分配和变量定义说明:

第二次作业

实验编号:实验二实验主题:类与对象 实验目的:(1)理解面向对象程序设计与过程化程序设计的区别,理解类和对象的概念,掌握如何编写和使用类; (2)理解数据成员、方法和构造方法的概念,掌握在类中的声明和使用; (3)理解重载的概念,掌握重载的使用; (4)理解继承和多态的概念,掌握它们的使用; (5)理解封装的概念,掌握封装的使用。 实验要求:(1)认真理解类、对象、数据成员、方法、构造方法、重载、多态、继承、封装等基本概念; (2)掌握类的定义和使用方法; (3)在Textpad环境下完成选做实验内容; (4)认真撰写完整的实验报告。 实验步骤:(1)首先,声明和定义类,在类中定义数据成员、方法和构造方法; (2)定义一个包含main 方法的类,测试已经定义好的类。 实验提示:(1)注意数据成员的初始化; (2)注意在继承的层次中构造方法的调用次序; (3)注意遵循Java的命名风格; (4)注意public,private,protected的区别和使用。 实验分数: 5.0 完成时间:10-10-23 0:00:00.000 实验内容:(选择一个题目完成) 题目:复数类 (难度:0.8) 编写一个复数类,可以进行复数加法和减法运算。编写一个包含main方法的类(应用程序)测试该复数类。要求该复数类至少包含一个无参的构造方法和一个带参的构造方法;数据成员包括复数的实部和虚部,为double类型;包括两个方法,分别实现复数的加法和减法运算。 题目:图书借阅第一版 (难度:1.0) 编写三个类,图书类、学生类和测试类,可以处理简单的书籍借阅情况,包括借书和还书等。图书类的数据成员包括书名、书号和借书学生等;方法包括借书、还书和显示书籍信息等。学生类的数据成员包括姓名、学号和所借书籍等;方法包括显示学生信息等。测试类是一个应用程序,在该程序中创建图书类和学生类对象,完成图书的借阅和归还。 题目:Employee类层次结构 (难度:1.0) 创建四个类,分别为Employee类、SalariedEmplyee类、HourlyEmployee类和CommissionEmployee类。其中Employee类是其他三个类的父类。Employee类包含姓名和身份证号。除此之外,SalariedEmployee类还应包含每月工资;HourlyEmployee类还应包含每小时工资数和工作时间数;CommissionEmployee还应包含提成比例和销售总额。每个类都应有合适的构造方法、数据成员的设置和读取方法。编写一个应用程序,创建这些类的对象,并输出与对象相关的信息。注意子类有时需调用父类的构造方法和被覆盖的方法,成员变量定义为private,对有些方法实现重载。

单片机补充作业

5-40 以中断方式,用汇编语言编写定时器T0方式0,1,2下,定时1ms 的程序。设系统focs = 12MHz 。 解1:方式0 确定装入T0的常数。机器周期为: 设所需初值为x ,则 =1C18H = 1 1100 0001 1000B 根据13位定时器的特性,TH0放x 的高8位,TL0放低5位,我们将x 值重排如下:x = 1110 0000 1 1000,即得本任务的时间常数为:TH0 = E0H ,TL0 = 18H 。 ORG 0000H AJMP MAIN ORG 000BH LJMP TIME0INT ORG 0050H MAIN : MOV SP ,#60H MOV TMOD ,#00H MOV TL0,#18H MOV TH0,#0E0H SETB ET0 ;允许T0中断 SETB EA ;开放总中断 SETB TR0 ;启动T1定时 SJMP $ TIME0INT : CLR T R0 ;禁止T0 CLR E T0 RETI ;中断返回 END ORG 0000H AJMP MAIN ORG 000BH LJMP TIME0INT ORG 0050H MAIN : MOV SP ,#60H MOV TMOD ,#01H MOV TL0,#18H MOV TH0,#0F0H SETB ET0 ;允许T0中断 SETB EA ;开放总中断 SETB TR0 ;启动T1定时 SJMP $ TIME0INT : CLR TR0 ;禁止T0 CLR ET0 s MHz μ 112)(12=分频3 613101101)2(--?=??-x 7192102313=-=x

汇编语言程序设计期末大作业。

汇编语言程序设计期末大作业: 编写一完整的汇编语言源程序,实现从键盘输入一个班(不少于10人)的学生记录(学号: 8位数字、姓名:不多余10个英文字符,语文:0-100的整数、数学:0-100的整数、英语:0-100的整 数)后, (1)将输入的记录保存在C盘根目录下名为stuscore.dat的文件中; (2)按照各科成绩总分先高后低的顺序输出全部学生记录和排名顺序; (3)输出总分高于班平均总分的全部学生记录。 要求:元月4日前提交一份纸质报告(班长统一收齐)。 大作业格式: 1.标题:汇编语言程序设计期末大作业 2.作业题目:(上述) 3.算法分析(流程图) 4.实现代码(必须含注释) 5.实验结果(汇编、连接、运行的截图) 6.总结 代码实现 stude nt struct ; 定义结构 Snu mber db 11,0,11 dup⑺ Sn ame db 11,0,11 dup⑺ En glish db 4,0, 4 dup⑺ Chinese db 4,0, 4 dup⑺ Math db 4,0, 4 dup⑺ Sum db 4,0, 4 dup⑺ stude nt ends ;数据段 data segme nt messMe nu db ' ------------ The Homework of Assembler ------------ ----$' messMe nu1 db ' ------- N ame:TU LIN No:8000110028------ ------ $' messNext db --------- $' messName db 'Please in put the stude nt n ame(<11):$' messNum db 'Please in put the stude nt nu mber(<11):$' messE nglish db 'Please in put the En glish score:$' messChi nese db 'Please in put the Chin ese score:$' messMath db 'Please in put the Math score:$' mess1 db 'n ame:$' mess2 db 'nu mber:$'

汇编实验指导书

汇编语言实验指导书 授课教师李娜 授课对象 05计科、网络、06计科 授课时间 07-08学年第一学期 授课地点一、二、四机房 课程简介 一.实验课程的性质和目的 汇编语言程序设计是计算机专业的一门专业基础课,是学好计算机底层系统构成的课程。汇编语言程序设计是一门实用性很强的课程。汇编语言程序程序设计实验教案是教案的重要环节,是理论教案的重要补充,只有通过实验,学生才能熟练掌握汇编语言程序设计的基本方法,并对其有更深刻的认识。本门实验课是单独设课。 二.实验教案的方法和手段 为了提高实验教案效果,实验严把预习、实验、实验报告3个环节。实验在软件实验室机房完成,单独设组,个人完成实验,每项实验以小班为单位,实验考勤采用电子签到制度。 预习:安排学生学习实验内容,了解实验的过程和操作规程,并布置思考题和预习报告,让学生有目的地去查阅与实验相关的资料。 实验:实验开始前由指导教师讲解实验要点,提出注意事项。实验过程中,主题是学生,教师是辅助作用,要求学生独立完成实验。 实验报告:实验结束后,强调学生及时填写实验记录表,对实验过程进行详细记录,对实验结果细致地分析、讨论,完成相关思考题作业。 三.课程学时 本实验课实验总学时为32学时。 四.实验成绩的考核方法 汇编语言实验成绩按百分制核定。实验过程占50%,实验报告占50%。五.大纲的适用范围 本大纲适用计算机科学与技术专业和计算机应用与维护专业学生。 六.主要设备与器材配备

七.实验项目汇总表 实验一熟悉汇编语言编程环境 一.实验目的 <1)熟悉汇编语言编程环境; <2)掌握基本汇编程序。。 二.实验仪器设备 计算机 三.实验重点、难点 熟悉汇编语言编程环境; DEBUG常用命令的正确使用。-T/-U/-Q/-G 四.实验题目 比较两个字符串string1和string2所含的字符是否相同,若相同则显示‘metch’,否则,显示’no match’。 五.实验内容、步骤 1.调用EDIT建立ASM源文件。 2.用汇编程序MASM对源文件汇编产生目标文件OBJ。 <如有问题,可用DEBUG调试。) 3.用LINK联接程序产生执行文件EXE。 4.执行程序。 附:源程序 ;PROGRAM TITLE GOES HERE—COMPARE STRING ;******************************************************** data segment string1 db 'move the cursor backward.' String2 db 'move the cursor backward.'

第二次作业《解释结构模型应用》

海事大学 实验报告 《系统工程》 2014~2015学年第一学期 实验名称:基于解释模型在大学生睡眠质量问题的研究学号:马洁茹有琳 指导教师:贾红雨 报告时间: 2014年9月24日

《系统工程》课程上机实验要求 实验一解释结构模型在大学生睡眠质量问题中的研究 实验名称:基于MATLAB软件或C/Java/其他语言ISM算法程序设计(一) 实验目的 系统工程课程介绍了系统结构建模与分析方法——解释结构模型法(Inter pretative Structural Modeling ·ISM)是现代系统工程中广泛应用的一种分析方法,能够利用系统要素之间已知的零乱关系,用于分析复杂系统要素间关联结构,揭示出系统部结构。ISM方法具有在矩阵的基础上再进一步运算、推导来解释系统结构的特点,对于高维多阶矩阵的运算依靠手工运算速度慢、易错,甚至几乎不可能。 本次实验的目的是应用计算机应用软件或者是基于某种语言的程序设计快速实现解释结构模型(ISM)方法的算法,使学生对系统工程解决社会经济等复杂性、系统性问题需要计算机的支持获得深刻的理解。学会运用ISM分析实际问题。 (二) 实验要求与容: 1.问题的选择 根据对解释结构模型ISM知识的掌握,以及参考所给的教学案例论文,决定选择与我们生活有关的——大学生睡眠质量问题。 2.问题背景

睡眠与我们的生活息息相关,当每天的身体机制在不断运行的过程中身体负荷不断变大,到了夜间就需要休息。但是同一寝室的同学大多休息时段不同,有些习惯早睡,有些会由于许多原因晚睡。有些睡眠较沉不会轻易被打扰,有些睡眠较轻容易被鼾声或者其他声响惊醒。学习得知,解释系统模型是通过对表面分离、凌乱关系的研究,揭示系统部结构的方法。 因此,我想尝试通过解释模型来对该问题进行研究分析。 3.用画框图的形式画出ISM的建模步骤。

汇编语言部分作业题(含答案)

一、填空题 1、编写一条宏指令CLRB,完成用空格符将一字符区中的字符取代的工作。字符区首地址及其长度为变元。 宏定义如下: CLRB MACRO N, CFIL MOV CX, () CLD MOV ( ), ' ' ;;取空格符的ASCII码 () DI, CFIL REP ( ) ( ) 正确答案: 第一空: n 第二空: al 第三空: LEA 第四空: STOSB 第五空: endm 我的答案:得分: 6.6分 第一空: N 第二空: AL 第三空: LEA 第四空: STOSB 第五空: ENDM 2、某工厂计算周工资的方法是每小时的工资率RATE乘以工作时间HOUR,另外每工作满10小时加奖金3元,工资总数存放在WAG中。请将周工资的计算编写成一条宏指令WAGES. 宏定义如下: WAGES MACRO RATE, HOUR, WAG MOV (), HOUR ;;计算周工资(WAG),公式为:HOUR* RATE MOV BL, RATE MUL BL MOV WAG, AX MOV AL, HOUR ;;计算奖金存入(AX),公式为:HOUR/10的商*3 MOV AH, 0

MOV BL, 10 DIV () MOV BL, () MUL () ADD WAG, ();;计算周工资总数 ENDM 正确答案: 第一空: al 第二空: bl 第三空: 3 第四空: BL 第五空: AX 我的答案:得分: 6.6分 第一空: AL 第二空: BL 第三空: 3 第四空: BL 第五空: AX 3、下面的程序段是二进制到十六进制转换程序,请填空。 mov ch, 4 rotate: mov cl, 4 rol bx,() mov al, bl and al,() add al, 30h ; ’0’~’9’ ASCII 30H~39H cmp al, 3ah jl printit add al,() ; ’A’~’F’ ASCII 41H~46H printit: mov() , al mov ah, 2 int 21h () jnz rotate 正确答案: 第一空:

微机原理程序设计大作业-2011

微机原理与程序设计大作业 ----汇编语言程序设计方法 1. 试编写一个程序,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCⅡ码为07)。 2. 从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并将计数值显示在屏幕上。 3. 试编写一个程序,要求比较数组ARRAY中的三个16位补码数,并根据比较结果在屏幕上显示如下信息: (1) 如果三个数都不相等则显示0; (2) 如果三个数有二个相等则显示1; (3) 如果三个数都相等则显示2。 4. 从键盘输入一系列字符(以回车符结束),并按字母、数字及其它字符分类计数,最后显示出这三类计数结果。 5. 假设已经编制好5个歌曲程序,它们的段地址和偏移地址存放在数据段的跳转表SINGLIST中,试编制程序,根据从键盘输入的歌曲编号1~5,转去执行五个歌曲程序中的一个。 6. 试编制一个程序,把AX中存放的16进制数转换为ASCII码,并将对应的ASCII码依次存放在MEM数组中的四个字节中。例如:当(AX)= 2A49H时,程序执行完后,MEM中的四个字节的内容为39H,34H,41H,32H。 7. 设有10个学生的成绩分别是76,69,84,90,73,88,89,63,100,80分,试编制一个子程序统计60~69分,70~79分,80~89分,90~99分及100分的人数,放在S6,S7,S8,S9和S10单元中。 8. 编写一个子程序嵌套结构的程序模块,分别从键盘输入姓名及8个字符的电话号码,并以一定的格式显示出来。 主程序TELIST: ?显示提示符INPUT NAME:; ?调用子程序INPUT_NAME输入姓名; ?显示提示符INPUT A TELEPHONE NUMBER:; ?调用子程序INPUT_PHONE输入电话号码;

汇编实验二

实验二3)编制在屏幕上显示九九乘法表的程序。(1)源程序 code segment assumecs:code,ds:code org 100h start: pushcs pop ds pushcs popes mov ax,3 int 10h mov di, 200h movbl, 1 again: mov al, 1 next1: mov dl, al mov al, bl add al, 30h stosb mov al, 'x' stosb mov al, dl add al, 30h stosb mov al, '=' stosb mov al, dl mulbl aam test ah, ah jz @asc xchg al, ah add al, 30h stosb xchg al, ah @asc:

add al, 30h stosb mov ax, 2020h stosw stosb mov al, dl inc al cmp al, bl jle next1 mov ax, 0d0ah stosw incbl cmpbl, 9 jle again mov ax, 0d0ah stosw mov al,'$' stosb mov ah, 9 mov dx, 200h int 21h mov ah,7 int 21h mov ah,4ch int 21h code ends end start (2)流程图

(3)实验结果 (4)心得体会 通过本次汇编课程设计,我深刻感受到了汇编语言在程序运行效率,以及时间、空间上的优越性。对汇编中常用的寄存器有了一定的了解,同时对程序设计的基本步骤有了一定的了解,此次编程对编程知识了解太少,动手能力不够强,以后在程序的调试过程在不断完善功能,使程序功能更强大,能够处理更多的错误,处理更多的异常。本次课程设计,我感受到编程成功带来的成就感,也感受到的汇编语言的特点。 4)编制在屏幕上显示用*组成的三角形的程序。 (1)流程图

工程力学(含实验演示)第二次在线作业

工程力学(含实验演示)第二次在线作业

第二次在线作业 单选题(共40道题) 收起 1.( 2.5分) ?A、. ?B、. ?C、. ?D、. 我的答案:D 此题得分:2.5分2.(2.5分) ?A、. ?B、. ?C、. ?D、. 我的答案:C 此题得分:2.5分3.(2.5分) ?A、. ?B、. ?C、. ?D、. 我的答案:A 此题得分:2.5分4.(2.5分) ?A、.

?B、. ?C、. ?D、. 我的答案:A 此题得分:2.5分5.(2.5分) ?A、. ?B、. ?C、. ?D、. 我的答案:A 此题得分:2.5分6.(2.5分) ?A、. ?B、. ?C、. ?D、. 我的答案:A 此题得分:2.5分7.(2.5分) ?A、. ?B、. ?C、. ?D、. 我的答案:A 此题得分:2.5分

8.(2.5分) ?A、. ?B、. ?C、. ?D、. 我的答案:C 此题得分:2.5分9.(2.5分) ?A、. ?B、. ?C、. ?D、. 我的答案:B 此题得分:2.5分10.(2.5分) ?A、. ?B、. ?C、. ?D、. 我的答案:C 此题得分:2.5分11.(2.5分) ?A、. ?B、. ?C、.

?D、. 我的答案:C 此题得分:2.5分12.(2.5分) ?A、. ?B、. ?C、. ?D、. 我的答案:D 此题得分:2.5分13.(2.5分) ?A、. ?B、. ?C、. ?D、. 我的答案:D 此题得分:2.5分14.(2.5分) ?A、. ?B、. ?C、. ?D、. 我的答案:B 此题得分:2.5分15.(2.5分) ?A、.

汇编语言课后作业

《汇编语言》课后作业 第一次作业 1、编写程序,将AX寄存器中的16位数,每连续4位分成一组,共4组, 然后把这4组数分别放在AL、BL、CL和DL寄存器中。用Debug工具调试程序,查看每条指令执行后,各寄存器的变化。 第二次作业 1、编写程序求数据段中8个字节型数据的累加和。部分代码如下。 Assume cs:codesg, ds:datasg Datasg segment DB 02H,13H, 02H, 35H, 1AH, 35H, 00H, 12H DW 0H ;此字型单元用来保存累加和 Datasg ends 第三次作业 1、编写程序,将内存中03FF:0~03FF:F中的16个数据复制到内存 0000:200~0000:20F中。 2、编写程序,利用堆栈将内存中03FF:0~03FF:F中的16个数据逆序复制到 内存0000:200~0000:20F中。 第四次作业 1、编写程序,在命令行窗体中输出如下图案(红底绿字高亮闪烁)。

程序执行效果,请在DOS命令行下运行zy4.exe文件。 第五次作业 1、编写程序,将数据段中的字符串完成大小写转换。字母字符大写转换成 小写,小写转换成大写,其他字符不变。 如:datasg segment db '$BaSic!InfOrIon*' datasg ends 程序执行后,数据段中的字符串变成了’$bAsIC!iNFoRiON*’。 是有debug工具查看数据段内容如下: 1)执行转换前,数据段的内容如下图 2)执行转换后,数据段的内容如下图 选做题(该题不计入课后作业成绩) 1、编写程序,将数据段中的字型数据以10进制的形式显示。 如:data segment dw 35A6H data ends 35A6H十进制值为13734,显示为13734,如下图:

相关主题
文本预览
相关文档 最新文档