汇编第1次上机题

合集下载

汇编上机题目

汇编上机题目
( 查找最小数存入MIN单元中 )
定义变量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次上机题

汇编第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次上机题

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次作业

《汇编语言程序设计》第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的内容是()。

汇编语言编程上机练习题.

汇编语言编程上机练习题.
输入n,退回DOS。
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.请任意输入一个字符串,统计其中空格和A的个数,并将结果显示在屏幕上。

3.请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上。

4.请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上。

5.请任意输入一个字符串,将其中大写字母换成小写字母,并将结果显示在屏幕上。

6.请任意输入一个字符串,将其中的英文字母全部删除,并将结果显示在屏幕上。

二、7.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其修改为disk, 并将结果在显示器上显示。

8.现有一组字符串为ram,yes,red,the,get,for,and,key,not,may,请编写程序将他们按ASCII大小排序,并在显示器上显示。

9.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其删除, 并在显示器上显示。

10.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序将上述字符串排序(升序)并插入disk使其人仍然有序, 并在显示器上显示。

三、11.键盘输入一个十进制数(字类型),以十六进制的形式输出。

12.键盘输入一个十进制数(字类型),以二进制的形式输出。

13.键盘输入一个二进制数(字类型),以十六进制的形式输出。

14.键盘输入一个二进制数(字类型),以十进制的形式输出。

15.键盘输入一个十六进制数(字类型),以十进制的形式输出。

16.键盘输入一个十六进制数(字类型),以二进制的形式输出。

⑴输入、转换及显示均用子程序形式书写。

⑵程序能够循环接收不同的十进制数,并对之处理,当按下非数字键时退出主程序,返回操作系统。

汇编语言程序设计 第一二三阶段在线作业

汇编语言程序设计 第一二三阶段在线作业

第一次在线作业单选题 (共40道题)∙A、BX或CX∙B、CX或SI∙C、DX或SI∙D、SI或DI我的答案:D 此题得分:2.5分∙A、数据段中偏移量为3236H的字节∙B、附加段中偏移量为3234H的字节∙C、数据段中偏移量为3234H的字节∙D、附加段中偏移量为3236H的字节我的答案:A 此题得分:2.5分∙A、上一条指令的首地址∙B、下一条指令的首地址∙C、正在执行指令的首地址∙D、需计算有效地址后才能确定地址我的答案:B 此题得分:2.5分4.(2.5分)某系列微机对存储器的分段,如果每一个段最多的字存储单元(16位二进制)是32K,那∙A、20位∙B、16位∙C、15位∙D、12位我的答案:B 此题得分:2.5分∙A、AX,BX,CX,DX∙B、DS,ES,CS,SS∙C、SP,BP,IP,BX∙D、SI,DI,BP,BX我的答案:D 此题得分:2.5分6.(2.5分)要求将A,B两个字符的ASCⅡ码41H,42H顺序存放在连续两个字存储单元中,可选用∙A、DA1 D B ‘AB’∙B、DA1 DW ‘AB’∙C、DA1 B ABH∙D、DA1 W ABH我的答案:A 此题得分:2.5分∙A、DB 5H∙B、DW ABCDH∙C、DW ‘ABCD’∙D、DD ‘AB’我的答案:C 此题得分:2.5分∙A、通用寄存器∙B、堆栈∙C、程序计数器∙D、主存单元我的答案:D 此题得分:2.5分∙A、变址寻址∙B、寄存器寻址∙C、相对寻址∙D、寄存器间接寻址我的答案:D 此题得分:2.5分∙A、85B92H∙B、86192H∙C、BB690H∙D、12169H我的答案:A 此题得分:2.5分∙A、AX,BX,CX,DX∙B、BX,BP,SI,DI∙C、SP,IP,BP,DX∙D、CS,DS,ES,SS我的答案:B 此题得分:2.5分12.(2.5分)BUF DW 10H DUP(3 DUP(2,10H),3,5) 上述语句汇编后,为变量BUF分配的存∙A、80H∙B、100H∙C、124∙D、192我的答案:B 此题得分:2.5分∙A、物理地址∙B、偏移地址∙C、逻辑地址∙D、段地址我的答案:A 此题得分:2.5分∙A、字∙B、双字∙C、字节∙D、四字我的答案:C 此题得分:2.5分∙A、符号∙B、变量∙C、助记符∙D、标号我的答案:B 此题得分:2.5分∙A、DATA1 DW 1856H∙B、DATA1 DB 18H,56H∙C、DATA1 EQU 5618H∙D、DATA1 DB 18H,00H,56H,00H我的答案:B 此题得分:2.5分17.(2.5分)计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码,目前,微∙A、BCD码∙B、二进制码∙C、ASCII码∙D、十六进制码我的答案:C 此题得分:2.5分18.(2.5分)假设存储器中从7462H单元开始的四个相邻字节单元中的内容依次是32H,46H,52H,∙A、7462H∙B、7463H∙C、7464H∙D、7465H我的答案:C 此题得分:2.5分∙A、08090H∙B、08089H∙C、0808EH∙D、08450H我的答案:A 此题得分:2.5分∙A、16*SS+SP∙B、16*SS+BP∙C、16*DS+BP∙D、16*CS+BP我的答案:A 此题得分:2.5分∙A、16*SS+BP+DI∙B、16*ES+BP+DI∙C、16*DS+BP+DI∙D、16*CS+BP+DI我的答案:A 此题得分:2.5分22.(2.5分)一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一∙A、12C5BH∙B、12B6BH∙C、12C59H∙D、12BFEH我的答案:C 此题得分:2.5分∙A、2345H∙B、12345H∙C、12340H∙D、1234H我的答案:D 此题得分:2.5分∙A、变址寻址∙B、寄存器寻址∙C、相对寻址∙D、寄存器间接寻址我的答案:D 此题得分:2.5分∙A、DB 20 DUP(?)∙B、DW 20H DUP(?)∙C、DB 10H DUP(4 DUP(?))∙D、DD 08H DUP(?)我的答案:D 此题得分:2.5分∙A、BX∙B、BP∙C、SI∙D、DI我的答案:B 此题得分:2.5分∙A、ZF=1∙B、ZF=0∙C、SF=l∙D、SF=0我的答案:A 此题得分:2.5分∙A、304FH∙B、304EH∙C、3048H∙D、3049H我的答案:B 此题得分:2.5分∙A、185A2H∙B、00020H∙C、01004H∙D、0AB568H我的答案:B 此题得分:2.5分∙A、.64K个字∙B、32K个字节∙C、64K个字节∙D、.1兆个字节我的答案:C 此题得分:2.5分∙A、DIV 2∙B、DIV DX,2∙C、SAR DX,1∙D、SHL DX,1我的答案:C 此题得分:2.5分∙A、BX或CX∙B、CX或SI∙C、DX或SI∙D、SI或DI我的答案:D 此题得分:2.5分∙A、TEST AL,02H ∙B、OR AL,AL∙C、CMP AL,BL∙D、AND AL,BL我的答案:D 此题得分:2.5分∙A、CMP∙B、SUB∙C、AND∙D、MOV我的答案:D 此题得分:2.5分∙A、XCHG AX,DS∙B、XCHG BL,[BX]∙C、XCHG AL,OFH ∙D、XCHG[SI],[DI]我的答案:B 此题得分:2.5分∙A、ADD BH,01H ∙B、OR BH,01H∙C、XOR BH,01H ∙D、TEST BH,01H 我的答案:B 此题得分:2.5分∙A、NOT AL∙B、AND AL,0FH ∙C、XOR AL,0FH ∙D、OR AL,0FH我的答案:C 此题得分:2.5分∙A、SHR AX,1∙B、SHL AX,1∙C、ROL AX,1∙D、RCR AX,1我的答案:B 此题得分:2.5分39.(2.5分)ORG 0030HDA1 DB 0,‘0’,30HDW DA1数据为3000H字存储单元的偏移地址是:∙A、0030H∙B、0031H∙C、0032H∙D、0033H我的答案:A 此题得分:2.5分40.(2.5分)BUF DW 10H DUP(3 DUP(2,10H),3,5)上述语句汇编后,为变量BUF分配的存储单元字节数是:∙A、80H∙B、100H∙C、124∙D、192我的答案:B 此题得分:2.5分-------------------------------------------------分割-----------------------------------------------------第二次在线作业单选题 (共30道题)∙A、对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令∙B、对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令∙C、对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令∙D、对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令我的答案:C 此题得分:2.5分∙A、MOV AL,[BX+SI]∙B、JMP SHORT DONING∙C、DEC [BX]∙D、MUL CL我的答案:C 此题得分:2.5分∙A、外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内∙B、外循环初值应置外循环之内;内循环初值应置内循环之内∙C、内、外循环初值都应置外循环之外∙D、内、外循环初值都应置内循环之外,外循环之内我的答案:A 此题得分:2.5分∙A、ZF=0∙B、CF=0∙C、ZF=1∙D、CF=1我的答案:A 此题得分:2.5分∙A、ADD BUF1,BUF2∙B、JMP DWORD PTR DAT [BX]∙C、MOV AX,[BX+DI] NUM∙D、TEST AL,08H我的答案:A 此题得分:2.5分∙A、JMP NEXT∙B、JC NEXT∙C、INC BX∙D、SHL AX,1我的答案:D 此题得分:2.5分∙A、目标程序∙B、源程序∙C、可执行程序∙D、汇编程序我的答案:B 此题得分:2.5分∙A、XCHG AX,[BX][SI]∙B、MOV AX,[BX+SI]∙C、LEA AX,BX[SI]∙D、LEA AX,[BX][SI]我的答案:D 此题得分:2.5分∙A、1FFFH∙B、1998H∙C、2002H∙D、1FFEH我的答案:D 此题得分:2.5分∙A、把源操作数的符号位扩展到目的操作数中∙B、把AL中的符号位扩展到AH中∙C、把AH中的符号位扩展到AL中∙D、把AX中的符号位扩展到DX中我的答案:B 此题得分:2.5分∙A、CX=0,且ZF=0∙B、CX=0,或ZF=1∙C、CX≠0,且ZF=0∙D、CX≠0,或ZF=1我的答案:B 此题得分:2.5分∙A、MOV CS,AX∙B、MOV DS,AX∙C、MOV SS,AX∙D、MOV ES,AX我的答案:A 此题得分:2.5分∙A、MOV BX,VAR∙B、LDS BX,VAR∙C、LES BX,VAR∙D、LEA BX,VAR我的答案:D 此题得分:2.5分∙A、3211H∙B、320EH∙C、320FH∙D、3212H我的答案:B 此题得分:2.5分15.(2.5分)汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省∙A、名字项∙B、操作项∙C、操作数项∙D、注释项我的答案:B 此题得分:2.5分∙A、伪指令∙B、指令∙C、标号∙D、助记符我的答案:B 此题得分:2.5分∙A、1400H∙B、77F8H∙C、0000H∙D、0FFFFH我的答案:A 此题得分:2.5分∙A、XCHG AX,DS∙B、XCHG AX,[BX]∙C、XCHG AX,CSH∙D、XCHG[SI],[DX]我的答案:B 此题得分:2.5分19.(2.5分)设数据段有:DA1 DB XX ;是任一数据DA2 DB OFEH 下列两条指令:MOV DL,∙A、.0FFH或0FEH∙B、只能是0FEH∙C、只能是0FFH∙D、只能是01H我的答案:A 此题得分:2.5分20.(2.5分)ORG 100H NUM EQU 8042H DA1 DB 56H MOV BX,0FFSET DA1 上述程序段∙A、56H∙B、100H∙C、101H∙D、102H我的答案:B 此题得分:2.5分∙A、段内转移直接寻址∙B、段内转移间接寻址∙C、段间转移直接寻址∙D、段间转移间接寻址我的答案:C 此题得分:2.5分∙A、DIV 2∙B、DIV DX,2∙C、SAR DX,1∙D、SHL DX,1我的答案:C 此题得分:2.5分∙A、指令XOR AX,AX执行后,AX内容不变,但设置了标志位∙B、指令OR DX,1000H执行后,将DX最高位置1,其余各位置0∙C、指令AND AX,OFH执行后,分离出AL低四位∙D、NOT AX,执行后,将AX清0我的答案:C 此题得分:2.5分∙A、ROL CL,1 ROL CL,1∙B、MUL 4∙C、SHL CL,1 SHL CL,1∙D、MOV CL,2 SHL CL,CL我的答案:C 此题得分:2.5分∙A、MOV [DI],[SI]∙B、MOV [DX+DI],AL∙C、MOV WORD PTR [BX],0100H ∙D、MOV AL,BX我的答案:C 此题得分:2.5分∙A、ZF=1∙B、ZF=0∙C、SF=1∙D、SF=0我的答案:A 此题得分:2.5分∙A、MOV [BX+SI],BX∙B、MOV CL,[BP+DI]∙C、MOV CS,AX∙D、MOV DS,AX我的答案:C 此题得分:2.5分∙A、AL=57H,BL=24H∙B、AL=33H,BL=24H∙C、AL=57H,BL=33H∙D、AL=33H,BL=0我的答案:B 此题得分:2.5分∙A、0FFH∙B、80H∙C、00H∙D、0FEH我的答案:A 此题得分:2.5分30.(2.5分)已知BX=028AH,SI=0294H,(DS:051EH)=5432H。

汇编上机考试题及答案

汇编上机考试题及答案

汇编上机考试题及答案;试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

DATAS SEGMENT;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXabc:mov ah,1int 21hjb stopcmp al,'z'ja stopsub al,20hmov dl,almov ah,2int 21hjmp abcstop:retMOV AH,4CHINT 21HCODES ENDSEND START;编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后;再按顺序显示这三个字符。

DATAS SEGMENT;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXBEGIN: MOV AH, 1 ;从键盘输入一个字符的DOS调用INT 21HCMP AL, 'a';输入字符<‘a’吗?CMP AL, 'z' ;输入字符>‘z’吗?JA STOPDEC AL ;得到前导字符MOV DL, AL ;准备显示三个字符MOV CX, 3DISPLAY: MOV AH, 2 ;显示一个字符的DOS调用INT 21HINC DLLOOP DISPLAYSTOP: RETMOV AH,4CHINT 21HCODES ENDSEND START;将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL和DL中。

汇编语言上机实训

汇编语言上机实训

===========================================================4月28日1、从键盘输入一个数n ( 1<=n<=9 ),然后屏幕上显示连续的n个“+”号。

例如,当键盘输入的是5时,屏幕上显示+++++2、从键盘输入一个字母,然后程序使得屏幕再出现该字母之后的5个后继字母。

例如:键盘输入的是m,则屏幕上除了m外,还出现nopqr。

===========================================================5月5日1、编程:在屏幕上显示如下字符:1234567123456712345672、[选做] 一个2位数( 11-99 ),个位数与十位数之和为12,求所有符合要求的数。

并显示出来,格式如下:3948.... (省略掉若干行)93提示:用两重循环来做,循环体中判断个位数与十位数是否满足条件,如果满足,则显示出来,并换一行。

===========================================================5月12日1、一个2位数( 11-99 ),个位数的2倍与十位数之和为15,求所有符合要求的数的个数并在屏幕上显示出个数。

提示:共有17,36,55,74,93等5个值。

2、[选做] 键盘输入两个小写的英文字母,编程实现在其下一行显示出这两个字母之间的所有字母。

(要考虑输入的时候,字母的大小关系)。

例1:bg (这是键盘输入的)cdef (这是软件显示的)例2:kh (这是键盘输入的)ij (这是软件显示的)===========================================================5月19-21日1、键盘输入有序的两个小写的英文字母(即第1个字母比第2个字母的ASCII值小),编程实现在其下一行显示出这两个字母之间的所有字母。

最新上半年汇编语言第一次作业

最新上半年汇编语言第一次作业

汇编语言第一次作业1、以下常用的十进制数转换为二进制数和十六进制数:3 2 7 6 7 D 2 5 5 D6 5 5 3 5 D答:32767 D=111111********* B =7FFF H255 D=11111111 B =00FF H65535 D=1111111111111111 B =FFFF H2、指令MOV AX [BX+DI —2]假设,(DS =5000H ( BX =1223H ( DI) =54H, ( 51275) =54H (51276) =76H那么,存取的物理存储单元是多少呢?在执行该指令后,(AX) =?(AX)=7654H3、假设(SS =2250H (SP) =0140H,如果在堆栈中存入4个数据,则栈顶的物理地址为多少?如果又从堆栈中取出2个数据,则栈顶的物理地址是多少?如果在堆栈中存入4个数据,则栈顶的物理地址为22640H ;如果又从堆栈中取出2个数据,则栈顶的物理地址是22638H。

4、假设(DS)=2000H, (ES)=2100H, (SS)=1500H, (SI)=00A0H,(BX)=0100H(BP)=0010H,数据段中变量名VAL的偏移地址值为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?(1) MOV AX, 0ABH(2) MOV AX, BX(3) MOV AX, [100H](4) MOV AX, VAL(5) MOV AX, [BX](6) MOV AX, ES:[BX](7) MOV AX, [BP](8) MOV AX, [SI](9) MOV AX, [BX+10](10) MOV AX,VAL[BX](11) MOV AX, [BX][SI](12) MOV AX, VAL[BX][SI]1、Mov ax,0ABH立即寻。

没有物理地址2、Mov ax,bx 寄存器寻,没有物理地址,ax=0100H3、Mov ax,[100H] 直接寻物理地址=20000H+100H=20100H4、Mov ax,VAL 直接寻物理地址=20000H+0050H=20050H5、Mov ax,[bx] 寄存器间接寻物理地址=20000H+0100H=20100H6、Movax,ES:[bx] 寄存器间接寻物理地址=21000H+0100H=21100H7、Mov ax,[BP] 寄存器间接寻段是SS 物理地=15000H+0010H=15010H8、Mov ax,[SI] 寄存器间接寻物理地址=20000H+00A0H=200A0H9、Mov ax,[Bx+10] 寄存器相对寻物理地址=20000H+0100H+10=20110H10、mov ax,VAL[Bx] 寄存器相对寻物理地址=20000H+0050H+0100H=20150H11、mov ax,[bx][SI] 基址加变址寻物理地址=20000H+0100H+00A0H=201A0H12、mov ax,VAL[bx][SI] 相对基址加变址物理地址=20000H+0100H+00A0H+0050H=201F0H5、一个有16个字的的数据区,它的起始地址为:70B0 : DDE6请写出这个数据区首末字单元的物理地址■70B0H*16+0DDE6H=7E8E6H7E8E6H+( 10H-1)=7E814H6、试分析下列程序段执行完后,A单兀的内容是多少?Data segme ntA dw 0B dw 0C dw 240, 20, 54Data endsCode segme ntMOV BX, OFFSET CMOV AX , [ BX ]MOV B , AXMOV AX , 2[ BX ]ADD AX , BCode ends(1) 10(2) 0⑷260(5)507、设当前数据段寄存器的内容为1B00H在数据段的偏移地址2000H单元内, 含有一个内容为0FF10H和8000H的指针,它们是一个16位变量的偏移地址和段地址,试写出把该变量装入AX的指令序列。

汇编上机作业参考答案(

汇编上机作业参考答案(

汇编上机作业参考答案(上机作业实验题目:1:熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。

2:编写程序,完成下面公式计算(其中变量X和Y是32位无符号数,变量A、B和Z是16位无符号数)A<-(X-Y+24)/Z的商B<-(X-Y+24)/Z的余数3:有单字节无符号数X,Y,Z,若X+Y>30,则求X+Z,否则则求X-Z,运算结果放入SUM单元中。

X,Y,Z,SUM 均为字节变量名。

(设X,Y,Z的值分别是 32,45,20,求得结果并输出;再设X,Y,Z 的值分别是 10,15,20,求得结果并输出。

要求尽量用DEBUG调试程序,修改数据。

)4:编写程序实现将数据段BUFF开始字节单元中的10个数字0,1,2,3,4,5,6,7,8,9转换成相应的ASCII码送入以ASC开始的内存单元。

(通过DEBUG指令查看程序执行结果)5:已知存储区有一首地址为ARRAY的字数组,元素个数为10,现在要求将数组的每个数据都加2(不考虑数据溢出)。

6:在一个字节数组ARRAY中找到第一个非零数据,如果找到,则显示第一个非0数据的下标,否则输出“NO FOUND”。

7:题目要求:在数据段以YVAR为首地址的区域中,存放有字数据,用串操作指令把第三个数据传送到数据段以MVAR为首地址的单元中。

8:与REP前缀相配合工作的MOVS串传送指令题目要求:在数据段以YVAR为首地址的区域中,存放有6个字的数据,用串操作指令把后4个字的数据传送到数据段以MVAR为首地址的4个字的单元中。

上机作业参考答案1:熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。

2:编写程序,完成下面公式计算(其中变量X和Y是32位无符号数,变量A、B和Z是16位无符号数)A<-(X-Y+24)/Z的商B<-(X-Y+24)/Z的余数DATA1 SEGMENTX DD ?Y DD ?Z DW ?A DW ?B DW ?…DATA1 ENDSCODE1 SEGMENT…MOV AX,XMOV DA,X+2SUB AX,YSBB DX,Y+2ADD AX,24DADC DX,0DIV ZMOV A,AXMOV B,DX…3:有单字节无符号数X,Y,Z,若X+Y>30,则求X+Z,否则则求X-Z,运算结果放入SUM单元中。

汇编第一次上机实验

汇编第一次上机实验

汇编第一次上机实验班级:姓名:学号:时间:2012年10月26日内容:汇编语言的上机过程题目:请把40个字母a的字符串从源缓冲区送到目的缓冲区目的:利用Microsoft提供的MASM5.0,掌握汇编语言从源程序建立到执行的方法。

具体步骤如下:1.建立ASM文件可以利用编辑程序EDIT在磁盘上建立源文件,也可以利用系统提供的记事本。

这次实验我使用的是记事本的方式建立。

首先创建一个文本文件,将代码正确完整地输入,经检查无误后保存,之后将文件的拓展名改为asm,文件名最好也使用英文。

我命名为“ex_movs.asm”。

2.对源程序进行汇编首先将上一步得到的源程序放到MASM5.0所在的根目录下,接着在开始菜单中选择“运行”,输入cmd转到命令提示符下,然后输入“盘号:”转到目标盘,利用cd命令转到MASM5.0所在的目录下,输入命令“masm ex_movs”,按ENTER,然后根据提示进行操作。

假如输入无误,显示“0 Waring Errors和0 Severe Errors”,则汇编通过,否则根据错误提示对源程序进行改正,直到汇编通过得到目标文件为止,即“ex_movs.obj”。

结果如图1。

图1 汇编结果3.用LINK程序产生EXE文件上一步产生的OBJ文件虽然是二进制的,但不是可执行的,还必须通过连接程序进行连接,使其转换成EXE可执行文件。

输入命令“link ex_movs”,按ENTER,根据提示进行操作。

此时发现连接程序给出无堆栈段的警告性错误,但并不影响程序运行,如图2。

到此,已经得到了程序。

图2 连接结果4.执行和调试程序输入命令“ex_movs”,发现并没显示结果,如图3。

其实程序已经瞬间执行完成并返回DOS了。

要看到执行的结果,只能使用命令调试程序了。

调用命令“debug ex_movs.exe”,在调试模式下,输入“t 33”执行51条指令,使程序停止在RETF指令处,用“d 0,2f”和“d es:0,2f”显示数据段和附加段的前48个字节,可见都为字符‘a’,实验成功。

汇编语言上机作业与答案

汇编语言上机作业与答案

上机考试题型答案顺序结构程序1、对于三个8位无符号数86H、34H和21H,编写R=86H×34H-21H的程序。

DATAS SEGMENTNUM DB 86H,34H,21HRESULT DW ?DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXLEA SI,NUMLEA DI,RESULTMOV AL,[SI]MOV BL,[SI+1]MUL BL ;乘法存入AX寄存器MOV BL,[SI+2]MOV BH,0SUB AX,BXMOV [DI],AXMOV AH,4CHINT 21HCODES ENDSEND START;=6935 (01B17H)2、将字节存储单元A中的内容左移4位,B中的内容右移一位。

要求移位后的空位为0。

DATAS SEGMENTA DB 34HB DB 0A2HDATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV CL,4SHL A,CLSHR B,1MOV AH,4CHINT 21HCODES ENDSEND START分支结构程序1、设计字符比较程序,两个字符相同时,显示YES;不相国时,显示NO。

DATAS SEGMENTD1 DB 'A'D2 DB 'B'RES1 DB 'YES','$'RES2 DB 'NO','$'DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV AL,D1MOV BL,D2CMP AL,BLJNE NEXT1LEA DX,RES1JMP NEXT2NEXT1:LEA DX,RES2NEXT2:MOV AH,09HINT 21HMOV AH,4CHINT 21HCODES ENDSEND START2、设存储单元A和B各有一个无符号数,比较其大小,将较大数送A单元。

汇编-上机-网页答案

汇编-上机-网页答案

第一次上机作业1.从键盘上接受一个字符,找出它的前导字符和后继字符,按序显示这三个字符。

寄存器分配:AL:暂存数据。

算法: 1、接受字符,存入AL。

2、(AL)→A。

3、(AL)自加1。

4、(AL)→A+1。

5、(AL)自加1。

6、(AL)→A+2。

7、‘$’→A+3。

8、输出以A为首地址的字符串。

代码:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTB DB ‘PLEASE ENTER A CHARACTER:$’ ;定义变量B,以其为首地址依次存放提示字符串。

A DB 5 DUP(?) ;定义变量A,同时开辟连续5个字节空间。

DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXLEA DX,BMOV AH,9INT 21HMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HMOV AH,1INT 21HDEC ALMOV A,ALINC ALMOV A+1,ALINC ALMOV A+2,ALMOV A+3,'$'MOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HLEA DX,AMOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDSEND START输出:PLEASE ENTER A CHARACTER:7(输入)678(显示)2.从键盘上接受一个数字字符,如不是,显示“not odd”,否则显示“odd”。

寄存器分配:AL:暂存数据。

算法: 1、接受字符,存入AL。

2、若AL<0,转到S3。

3、否则,若AL>0,转到S3。

4、否则,输出字符串“ODD”。

5、程序结束。

注:S3功能是输出字符串“NOT ODD”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的值是否正确。

相关文档
最新文档