汇编第1次上机题
汇编上机题目

定义变量dat、max 段初始化、加载
CX←数据个数
si←0
ax=dat[si]
si ←si+2 y
Ax>=dat[si] n
Ax=dat[si]
cx=cx-1
n Cx=0?
y
max ← ax 结束
上机实验题目(三)分支 程序设计
上机题目(一):统计正数(负数)的个数 内容:DAT开始的单元中存放N个字节有符号数,
si←0 ch←4h
y Al<0a?
n al ←al+7
al ←al+30
Mas[si]←al
cl←4h ax ←buf ax← ax rol cl buf ←ax
取 al 低4bit
crt 显示
si ←si+1
n Ch-1=0? y
恢复现场
ret
一、上机注意事项:
1 、按时来实验室。 2、戴鞋套。 3、固定座位。 4、上机独立完成习题,不可喧哗。 5、共完成4个大题目,提交4份实验报告。 6、每大题写一份实验报告,用规范实验报告纸。 • 学号,实验题目,实验目的,流程图,代码,结
果,心得体会。
7、 实验完成或下课要求关机,整理好座位 东西。
统计正数的个数存入T0单元中; 负数的个数存入T1单元中;
流程图
定义变量dat、t0、t1
段初始化、加载
CX←dat长度
si←0
y dat[si] bit7=0?
n
n
t1 ← t1+1
t0←t0+1
si←si+1
Cx-1=0? y
end
上机实验题目(三)分支 程序设计
汇编语言上机练习题

汇编语言上机练习题1,1。
请输入任何字符串,并在颠倒顺序后显示在屏幕上。
2。
请输入任意字符串,计算空格和A的数量,并在屏幕上显示结果3.请输入任何字符串,删除其中的所有空格,并在屏幕上显示结果。
4.请输入任何字符串,用副本替换A,并在屏幕上显示结果5。
请输入任何字符串,用小写字母替换大写字母,并在屏幕上显示结果6.请输入任何字符串,删除所有英文字母,并在屏幕上显示结果。
二、7。
现有字符串是数据、名称、时间、文件、代码、路径、用户、退出、退出、文本。
请编写一个程序,从键盘输入4字符串,如果有的话,修改成磁盘,并在显示器上显示结果。
8。
现有的字符串集有随机存取存储器、是、红色、The、GET、FOR、AND、KEY、NOT、MAY。
请编写一个程序,按照ASCII的大小对它们进行排序,并在显示器上显示出来。
9。
现有的字符串集是数据、名称、时间、文件、代码、路径、用户、退出、退出、文本。
请编写一个程序,从键盘输入4个字符串,如果有的话,将其删除,并显示在显示器上。
10。
现有的字符串集有数据、名称、时间、文件、代码、路径、用户、退出、退出、文本。
请编写一个程序对以上个字符串进行排序(升序),并插入磁盘使它们保持有序,并在显示器上显示出来。
三、11。
键盘输入一个十进制数(字类型),以十六进制的形式输出12.键盘以二进制输出的形式输入一个十进制数(字类型)13.键盘输入一个二进制数(字类型),以十六进制的形式输出14.键盘以十进制输出的形式输入二进制数(字类型)15.键盘以十进制输出的形式输入一个十六进制数(字类型)16.键盘输入一个十六进制数(字类型),以二进制输出的形式(1)输入、转换和显示均以子程序形式编写2程序可以循环接收不同的十进制数并进行处理。
当非数字键被按下时,它退出主程序并返回操作系统。
四、17。
将一组带符号数字中的负数相加,计算负数的数量,并在屏幕上以十进制形式显示结果38H、4AH、0C5H、83H、9CH、0B4H、7FH、0C4H、05H、0F5H 18。
实验一汇编语言上机操作训练

实验一汇编语言上机操作训练——比较字符串
实验项目名称:比较字符串
实验项目性质:普通
所属课程名称:微机原理与应用
实验计划学士:2
一、实验目的
1、学习程序设计的基本方法和技能;
2、熟悉掌握汇编语言设计、编写、调试和运行。
二、实验内容和要求
汇编语言程序上机操作方法
编写一程序,比较两个字符串string1和string2所含字符是否相同,若相同则在屏幕上显示“MATCH”,否则显示“NOT MATCH”。
三、实验主要仪器设备和材料
计算机一台
四、程序功能:
比较字符串string1和string2是否相同,若相同则在屏幕显示MATCH,否则显示NO MATCH。
五、思考题
1、将内存data1单元开始的0-15共16个数传送到data2单元开始的数据区中。
答:数据段代码程序例子如下:
DATA SEGMENT
DATA1 DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
DATA2 DB 10H DUP(?)
DATA ENDS
2、将程序中的指令中JZ MATCH 改为JNZ MATCH,程序结果如何?为什么?
答:程序结果会变为:若string1和string2不相等就输出MATCH。
因为JNZ指令的意思是非零就跳转,所以结果与原程序相反,原程序是相等就输出MATCH,改为JNZ MATCH后就变为不相等就输出MATCH。
汇编第1次上机题

2013《汇编语言程序设计》第一次上机题
一、目的
(1) 学会汇编源程序开发的过程:编辑、汇编MASM、连接LINK、调试TD。
(2)编写简单的汇编语言程序,加强对汇编语言的理解。
二、预习
(1) 课本《80X86汇编语言程序设计》第7章:7.1和7.4节。
(2) 参考《80X86汇编语言程序设计上机指南》(许向阳编写)相关内容。
(3) 从汇编教学网站上下载相关软件(MASM,LINK,TD,DOSBox)并自己带到机房里(DOSBox是DOS
环境模拟软件)。
二、题目
1、《80X86汇编语言程序设计》P299中的程序实例。
要求:重复7.4.3节中的整个过程,初步掌握TD的使用方法。
2、《80X86汇编语言程序设计》P31中的1.14题。
要求:直接在TD中输入指令进行求和(如MOV AH, x1、MOV AL, x2、ADD AH, AL),记录执行指令后标志位SF、OF、CF、ZF的值(验证自己的作业情况)。
3、编写程序
利用DOS 10号功能调用输入一个字符串,把其中的小写字母转换为大写字母,然后把整个字符串显示出来。
要求:输入各种字符串校验程序的正确性。
2007_汇编第1次上机题

《汇编语言程序设计》第一次上机一、目的(1) 学会汇编源程序的编辑、汇编、连接;(2)学会使用程序调试工具 TD.EXE;(3) 已学习过的汇编语言程序设计知识的实践,加深对这些知识的理解和印象。
二、题目1、《80X86汇编语言程序设计》教材中 P45的 2.3题。
要求:(1)可以省略实验报告中的程序框图和源程序。
(2)分别记录执行到“MOV CX,10”和“INT 21H”之前的(BX), (BP),(SI),(DI)各是多少。
(3)记录程序执行到退出之前数据段开始40个字节的内容,指出程序运行结果是否与设想的一致。
操作提示:使用TD.EXE调试程序时,应先单步执行循环体中的各个语句,每执行一条语句,都应观察数据段中的内容以及相应寄存器的变化。
执行循环体两遍且正确理解了循环体语句的含义后,可在“MOV AH,4CH”处设置断点,然后直接执行到断点处,回答(2)和(3)的问题。
2、《80X86汇编语言程序设计》教材中 P45的 2.4题。
要求:(1) 实现的功能不变。
(2) 内存单元中数据的访问采用变址寻址方式。
(3) 记录程序执行到退出之前数据段开始40个字节的内容,检查程序运行结果是否与设想的一致。
操作提示:同第1个上机题3、《80X86汇编语言程序设计》教材中 P31的 1.14题。
要求:(1) 直接在TD中输入指令,完成两个数的求和功能(可以省略实验报告中的程序框图)。
求和后的结果放在(AH)中(2) 请事先指出执行加法指令后(AH)、标志位SF、OF、CF、ZF的内容。
(3) 记录上机执行后与(2)中对应的内容。
操作提示:将TD中的代码显示区置为当前区域,光标移到期望修改的行后,直接输入汇编指令,在输入了第一个字符时,自动弹出如下图所示的指令临时编辑窗口。
每输入完一条指令,按回车键,这时输入的指令即可出现在光标处,同时光标自动下移一行,以便输入下一条指令。
4、《80X86汇编语言程序设计》教材中 P34,例2.1的实验要求:(1) 直接在TD中输入指令。
汇编语言上机复习试题

经典上机题
1.将BX中的二进制数转换成十六进制数在屏幕上显示出来。
2.将字符串‘asd&fghj&kl’中的最后一个符号’&’用空格代替,并在屏幕上显示替换后的字符串。
3.比较两个字符串,如果相同显示‘match’,不同显示’no match’。
4.键盘接收一个字符,找出其前导字符和后续字符,并按顺序在屏幕上显示出来。
5.将字符串‘asd&fghj&kl’中的第一个符号’&’用空格代替,并在屏幕上显示替换后的字符串。
6.用功能10接收一字符串,如果和在数据段已定义的口令‘hello’相同,则显示字符串‘welcome’,否则退出。
7.将数据段buf1中的字符串‘I am a student.’传送到附加数据段buf2中,然后在屏幕上显示buf2缓冲区中的结果。
8.键盘接收一个四位十六进制数转换成二进制数在屏幕上显示出来。
9.编写程序:从键盘接收一个小写字母,然后找出它的前导字符和后续字符,并转换成对应的大写字母按顺序显示出来。
10.编写一条宏指令CLRB,完成用空格符将一字符区中的字符代替的工作。
字符串的首址及其长度为变元,并显示缓冲区填充结果。
《汇编语言程序设计》第1次作业

一、单项选择题(只有一个选项正确,共10道小题)1.十进制数-100的8位二进制数的补码为()。
(A) 10011100(B)11100100(C) 11001110(D) 011001002.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。
(A) 无符号十进制数136(B) 压缩型BCD码十进制数88(C) 8位二进制数-8的补码表示(D) 带符号十进制数-1203.指令MOV AX,[BX][SI]中源操作数采用的寻址方式是()。
(A) 寄存器(B) 基址变址(C) 寄存器间接(D) 寄存器相对4.下面有语法错误的指令是( )。
(A) ADD [BP+2],DA1(DA1是变量名)(B) ADD [BX+3],AL(C) ADD AL,AH(D) ADD AH,[DI]5.在DEBUG上机调试程序时,存储器地址表示为12FA:015F,它的物理地址是( )(A) 12FAH(B) 1305FH(C) 015FH(D) 130FFH6.下列指令中,执行后,不改变标志位ZF的是()。
(A) AND AL,AL(B) TEST AL,0FFH(C) CMP AL,BL(D) ROR AL,CL7.DATA SEGMENTDA1 DB 32 DUP(?)DA2 DW 1456H,789AHDA3 DW DA2DATA ENDS…MOV BX, DA3上述指令执行后,BX中的内容是( )。
(A) 0031H(B) 0032H(C) 0020H(D) 0021H8.完成将累加器AX清零,下面错误的指令是()。
(A) OR AX,00H(B) AND AX,00H(C) XOR AX,AX(D) SUB AX,AX9.数据段有如下数据定义VAR DB 4 DUP(1,5 DUP(?)),1,2执行指令MOV AL,SIZE VAR后AX寄存器的值是多少()。
(A) 4(B) 1(C) 5(D) 2010.内存中(2000H)=3000H,(3000H)=A01FH,MOV BX,[2000H]MOV AX,[BX]执行上述指令AX的内容是()。
汇编语言编程上机练习题.

6、 用“笑脸”符画一条斜线,座标位置从 ( 0 , 0 )到( 24 , 24 ),设置为 8025 的字 符方式,笑脸的ASCII码为02,用ESC键退 回DOS。 7、 编写一程序,在屏幕上显示两条水平 的有颜色的线,一条在第 0 行,一条在第 199行,屏幕底色为蓝色,并设计按ESC键 使程序可以退出返回DOS。 8 、编写一程序,在屏幕上显示两条垂直线, 一条在第10列,另一条在第300列,屏幕底 色为兰色,线为红色,并设计 按ESC键退 出返回到DOS。
9、 假设10个学生某课程成绩为60,75,96,68,87,53, 96 , 46 , 92 , 33 ,(学生成绩可以自己输入)请编写 一段程序,统计该成绩中小于 60 分的人数, 60 - 89 分 的人数和大于等于90 分的人数,并将结果显示在屏幕 上,格式为: Input score of 10 students : The rezult is: <60: ; 60-89: ; 90: Try again(y/n)? 输入n, 退回DOS。 10 、试编写一程序,要求根据用户键入的月份数,在屏 幕上显示该月的英文缩写名,键入 ESC 键,则退出返 回到DOS。 屏幕上显示:month? ;提示输入月份数 5 ;键入5 MAY ;显示5月的英文缩写 month?
编程时先假设 x = -8,y = 9
3、 用键盘分别输入3位十进制数和1位十进制数, 相乘之,并输出结果。编写程序, 要求在屏幕 上显示如下: Input 3 bits Decimal Number is : Input 1 bits Decimal Number is : Result is: Try again (y/n)? 输入n,退回DOS。 4、 从键盘输入字符串(N≤30,回车为结束符), 编一程序,按字母、数字及其它字符分类统计 个数,最后显示出字符总数和三类字符的个数。 屏幕显示如下:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上机注意事项
请大家在网站上下载实验报告样例和实验报告评分原则,上机前做好准备,必须完成实验报告中除上机实验记录和体会以外的全部内容。
上机时主要是验证所做结果是否正确,记录实验中看到的结果,并且找出错误的原因,以促进对课本知识的理解。
有些实验记录可以在执行语句后面写。
调试后发现的源程序中的错误可以直接在源程序中修订。
到机房上机要签到、检查实验报告;提前完成的需经过老师检查后方可离开机房。
请大家参考配套的《80X86汇编语言程序设计上机指南》(华中科技大学出版社2007年)相关内容。
上机使用的相关软件请从汇编教学网站上下载。
自备U盘带相关软件和电子版实验报告,报告文件名格式:CS1301_U201312345张三丰_1.zip 实验报告纸质和电子档最终是要提交存档的。
实验名称:实验一简单程序设计与TD的使用
一、目的
(1) 学会汇编源程序的编辑、汇编、连接;
(2)学会使用程序调试工具TD.EXE;
包括如何观察寄存器中的值;
如何观察标志寄存器中标志位的值;
观察内存中数据存放的地址、存放结果;
程序的单步执行、连续运行等;
断点的设置、取消等
(3) 巩固已学习过的汇编语言程序设计知识,加深对这些知识的理解。
二、实验内容
任务1:重复《80X86汇编语言程序设计》P299中的程序实例,初步掌握TD的使用方法要求:(1) 观察执行每条指令后相关寄存器的变化;
(2) 学会单步执行指令、设置/取消断点;
(3) 怎样查看BUF2缓冲区中的内容;
(4) 在TD中怎样将BUF3缓冲区中的0AH修改成’$’(ASCII码)。
任务2:《80X86汇编语言程序设计》教材中 P31的 1.14题
要求:(1) 直接在TD中输入指令,完成两个数的求和功能(可以省略实验报告中的程序框图)。
求和后的结果放在(AH)中
(2) 请事先通过手工计算指出执行加法指令后(AH)、标志位SF、OF、CF、ZF
的内容。
(3) 记录上机执行后与(2)中对应的内容。
操作提示:将TD中的代码显示区置为当前区域,光标移到期望修改的行后,直接输入汇编指令,在输入了第一个字符时,自动弹出如下图所示的指令临时编辑窗
口。
每输入完一条指令,按回车键,这时输入的指令即可出现在光标处,同
时光标自动下移一行,以便输入下一条指令。
任务3:编写程序
缓冲区BUF中有若干个有符号短整数(2个字节),找出其中的绝对值最大的数并存放到变量RESULT中。
要求:在BUF中定义不同的正负数,用TD查看变量RESULT的值是否正确。