文档库 最新最全的文档下载
当前位置:文档库 › 汇编语言第一次作业

汇编语言第一次作业

汇编语言第一次作业
汇编语言第一次作业

姓名:薛锦利

学号:14710074

汇编语言第一次作业

1、以下常用的十进制数转换为二进制数和十六进制数:

3 2 7 6 7 D 2 5 5 D

6 5 5 3 5 D

答:

32767 D=111111********* B =7FFF H

255 D=11111111 B =00FF H

65535 D=1111111111111111 B =FFFF H

2、回答问题

指令MOV AX,[BX+DI-2]

假设,(DS)=5000H,(BX)=1223H,(DI)=54H,(51275)=54H (51276)=76H

那么,存取的物理存储单元的地址是多少?

答:(AX)=7654H

3、假设(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=0100H

3、Mov ax,[100H] 直接寻物理地址=20000H+100H=20100H

4、Mov ax,VAL 直接寻物理地址=20000H+0050H=20050H

5、Mov ax,[bx] 寄存器间接寻物理地址

=20000H+0100H=20100H

6、Mov ax,ES:[bx] 寄存器间接寻物理地址=21000H+0100H=21100H

7、Mov ax,[BP] 寄存器间接寻段是SS 物理地址

=15000H+0010H=15010H

8、Mov ax,[SI] 寄存器间接寻物理地址

=20000H+00A0H=200A0H

9、Mov ax,[Bx+10] 寄存器相对寻物理地址=20000H+0100H+10=20110H

10、mov ax,VAL[Bx] 寄存器相对寻物理地址

=20000H+0050H+0100H=20150H

11、mov ax,[bx][SI] 基址加变址寻物理地址

=20000H+0100H+00A0H=201A0H

12、mov ax,VAL[bx][SI] 相对基址加变址物理地址

=20000H+0100H+00A0H+0050H=201F0H

5、一个有16个字的的数据区,它的起始地址为:

70B0:DDE6,请写出这个数据区首末字单元的物理地址

答:

70B0H*16+0DDE6H=7E8E6H

7E8E6H+(10H-1)=7E814H

6、试分析下列程序段执行完后,A单元的内容是多少?

Data segment

A dw 0

B dw 0

C dw 240, 20, 54

Data ends

Code segment

MOV BX, OFFSET C

MOV AX, [ BX ]

MOV B, AX

MOV AX,2[ BX ]

ADD AX, B

Code ends

答:

(1)10

(2)0

(4)260

(5)50

7、设当前数据段寄存器的内容为1B00H,在数据段的偏移地址2000H单元内,含有一个内容为0FF10H和8000H的指针,它们是一个16位变量的偏移地址和段地址,试写出把该变量装入AX的指令序列。

答:

MOV BX, [2000H]

MOV AX, [2000H+2]

MOV ES, AX

MOV AX, ES:[BX]

8、执行下列指令序列后,AX寄存器中的内容是什么?

TABLE DW 10,20,30,40,50

RETURN DW 3

MOV BX,OFFSET TABLE

ADD BX,RETURN

MOV AX,[BX]

答:

1E00

9、指出下列指令的错误:

MOV AH,BX ; MOV [BX],[SI]

MOV AX,[ SI ][ DI ] ; MOV CS,AX

CMP 15,BX ; CMP OP1,OP2 (OP1,OP2是已定义的字节变量)PUSH BL ; CMP AX,OP1

POP CS; MOV BYTE PTR[BX], 1000

答:

(1)分辨是单操作数还是双操作数;

(2)如果是双操作数,那么它是根据什么寻址方式;

(3)双操作数的目的操作数不能是立即数;

(4)两个操作数中必须有一个是寄存器(除了立即寻以外);

(5)双操作数中,代码段CS不能做目的操作数;

(6)最后检查两个操作数的类型是否匹配;

(7)如果是单操作数,栈操作都是以字为单位(16位寄存器和16位地址);(8)单操作数中,代码段CS不能做目的操作数;

10、在TABLE数组中依次存储了七个字数据,紧接着是名为ZERO的字单元,表示如下:

TABLE DW 23, 36, 2, 100, 32000, 54, 0

ZERO DW ?

( 1 ) 如果BX包含数组TABLE的初始地址,请编写指令将数据0传送给ZERO 单元

( 2 )如果BX包含数组0在数组中的位移量,请编写指令将数据0传送给ZERO 单元

答:

(1)、Mov Ax,[BX+0CH] ;利用相对寻得到数据,传送给Ax

Mov ZERO,AX ;直接寻

(2)、Mov Ax,[TABLE+BX] ;寄存器的直接寻,求出数据0的位置

Mov ZERO,AX ;赋值

11、 MOV CL,3

MOV BX,0B7H

ROL BX,1

ROR BX,CL

执行上述程序后,BX为多少

答:BX=OCO2DH

12、例如:现有程序段如下

XOR AX,AX

MOV AX,6C5AH

MOV CX,0203H

RCL AH,CL

XCHG CH,CL

RCR AL,CL

HLT(停机)

程序执行后AX=? CF=?

答:

AX=0D82DH CF=0

13、程序段1

MOV AX,147BH

MOV BX,80DCH

ADD AX,BX

JNO L1

JNC L2

程序段2

MOV AX,99D8H

MOV BX,9847H

SUB AX,BX

JNC L3

JNO L4

上述两个程序段执行后,分别转移到哪里

答:转移到L3

14、执行下列程序:

MOV AX,0

MOV BX,1

MOV CX,100

A:ADD AX,BX

INC BX

LOOP A

HLT

执行后的结果为(BX)=?(AX)=

答:(BX)=101 (AX)=5050

15、分析下列程序段指出程序完成的功能和运行的结果。MOV AL,28H

MOV AH,0

SAL AX,1

MOV BX,AX

SAL AX,1

SAL AX,1

ADD AX,BX

该程序段完成的功能是什么?

答:对AL的内容乘以10

程序运行后AX为多少?

答:400

16、分析下面程序段,回答问题:

MOV AX,5C8FH

MOV BX,0AB8FH

XOR AX,BX

XOR AX,BX

问:AX=?,BX=?,CF=?

答:AX=5C8FH ,BX=0AB8FH ,CF=0

10、分析下面程序段,回答问题:

MOV CX,DX

NOT CX

ADD CX,DX

INC CX

问CX=?ZF=?

答:

CX=0 ;ZF=1

17、现有程序段如下:

MOV AX,01H

MOV BX,02H

MOV CX,03H

DON:INC AX

ADD BX,AX

SHR AX,1

LOOP DON

HLT

该程序段完成的功能是什么?答:BX+6

程序运行后AX、BX为多少? 答:BX=08H ,AH=01H

汇编语言大作业

辽宁师范大学计算机与信息技术学院综合性实验报告 课程名称:汇编语言 实验题目:菜单程序设计 学生姓名:孙蕾 专业:计算机科学与技术 学号: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

汇编语言课后习题答案

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

《汇编语言》在线作业二

请同学及时保存作业,如您在20分钟内不作操作,系统将自动退出。 《汇编语言》在线作业二 一、单选题(共 20 道试题,共 100 分。) V 1. 在多重循环程序中,每次通过外层循环进入内层循环时,其内层循环的初始条件(B )。 A. 不必考虑 B. 必须重新设置 C. 必须置1 D. 须清0 满分:5 分 2. 伪指令是(C)规定的汇编说明符,它在源程序汇编时进行说明。 A. DEBUG B. LINK C. MASM D. EDIT 满分:5 分 3. 下列描述正确的是(D)。 A. 在多重循环程序中,内层循环只能有一个 B. 在汇编语言程序设计中,二重循环程序之间的关系可以交错 C. 在汇编语言程序设计中,每次循环应返回到置初值部分之前 D. 在汇编语言程序设计中,每次循环应返回到置初值部分之后 满分:5 分 4. 下列指令会影响标志位的指令是(D)。 A. JMP L

B. JC L C. MOV AL,L D. SHL AL,1 满分:5 分 5. LINK命令执行后可以生成一个以(B)为扩展名的文件。 A. ASM B. EXE C. OBJ D. COM 满分:5 分 6. 如果0100H单元存放条件转移指令的操作码,0101H单元存放条件转移指令的相对位移量 13H,那么转移后的指令的偏移地址为(C)。 A. 0102H B. 0113H C. 0115H D. 00FEH 满分:5 分 7. 若DS=1000H,BX=2000H,(12000H)=56H,(12001H)=78H,AX=1000H,执行“ADD AX,[BX]”指令后,AX=(A)。 A. 8856H B. 6678H C. 8800H D. 6600H 满分:5 分 8. 下列叙述正确的是(A )。 A. 执行一条段间调用指令,先将CS、IP的内容压栈,然后将目的地址送CS和IP。 B. 执行一条段间调用指令,先将目的地址送CS和IP,然后将CS、IP的内容压栈。

汇编语言习题

汇编语言习题 一、单项选择题 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 {

单片机补充作业

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:$'

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

汇编语言程序设计第03次作业 1、已知一数据段中的数据定义如下: DATA SEGMENT STR1 DB 0,1,2,3,4,5 STR2 DB ‘012345’ COUNT EQU 30 NUMB DB 3 DUP(2) NUMW DW 10H,-60H POIN DW 0 DATA ENDS 根据以上数据段的定义,改正下列语句中的错误。 (1) MOV AX,STR1 (2) MOV BP,OFFSET STR2 MOV CL,[BP] (3) MOV SI,OFFSET NUMB MOV [SI],’+’ (4) MOV DL,NUMW+2 (5) MOV DI,CH (6) MOV BX,OFFSET STR1 MOV DH,BX+3 (7) INC COUNT (8) MOV NUMB,STR2 (9) LEA POIN,NUMW 2、已知下列数据段定义: DATA SEGMENT NUM DW 10,20,30,40,50 BUF DW 3 DATA ENDS 执行下列程序后,AX中的值是多少? MOV AX, SEG NUM MOV DS, AX MOV BX, OFFSET NUM ADD BX, BUF MOV AX, [BX] 3、设程序中数据的定义如下: NO DW ? NAME DB 16 DUP(0) COUNT DD ? LENGTH EQU $-NO 请问LENGTH的值为多少?表示什么意义?

4、已知数据段有如下定义: FIRST DB 12H,34H SECOND DB 56H,78H 用堆栈指令编一段程序实现将FIRST和SECOND单元的内容互换,FIRST+1和SECOND+1单元的内容互换。 5、设数据段中有10个8位无符号数,定义如下(实际数据请随机设置): NUM DB 19,250,88,42,60,77,39,100,91,2 编写完整的汇编语言程序,找出这组数据中的最大数、最小数,同时计算平均值(取整),以十六进制的形式显示在屏幕上: MAX=??H MIN=??H AVG=??H 要求给出实际调试运行过的代码,打印/抄写在作业纸上。 6、编写完整的汇编语言程序,完成下述显示彩色字符串的功能: (1) 显示字符串的功能必须用宏指令实现,在主程序中调用; (2) 在0行10列显示绿色字符串Hello(属性字02H); 在12行38列显示红色字符串OK(属性字04H); 在24行60列显示黄色字符串Goodbye!(属性字0EH)。

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

一、填空题 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输入电话号码;

汇编语言期末考试试题及答案

汇编语言模拟试题及答案 一,单项选择题 (在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20 分) 1.指令JMP FAR PTR DONE 属于参考答案为:C A .段内转移直接寻址 B ?段内转移间接寻址 C .段间转移直接寻址 D ?段间转移间接寻址 [解析]略 2.下列叙述正确的是参考答案为:C A ?对两个无符号数进行比较采用CMP 指令,对两个有符号数比较用CMPS 指令 B ?对两个无符号数进行比较采用CMPS 指令,对两个有符号数比较用CMP 指令 C .对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL 指令 D .对无符号数条件转移采用JGE/JNL 指令,对有符号数条件转移用JAE/JNB 指令 [解析]对于无符号数和有符号数的比较都采用CMP 指令; CMPS 指令是串比较指令; 对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转 移指令应是:JGE、JNL、JLE、JNG。 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH ,请给出这个数 据区最末一个字单元的物理地址是参考答案为:C A . 12CSBH B . 12B6BH C. 12C59H D . 12BFEH [解析]末字与首字相隔(128- 1 =) 127个字,且每个字占用2个字节,因此末字单元的物理地址应为: 首字单元的物理地址+( 128 —1) >2 即12ABHX 10H + OOABH +( 128 —1) X2 = 12C59H。 4.在下列指令的表示中,不正确的是参考答案为:C A . MOV AL ,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D . MUL CL [解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C中的 [BX] ,没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如DEC BYTE PTR [BX] 或DEC WORD PTR [BX] 但是在题目的选项C 中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。 5.在进行二重循环程序设计时,下列描述正确的是参考答案为:A A .外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B ?外循环初值应置外循环之内;内循环初值应置内循环之内 C ?内、外循环初值都应置外循环之外

汇编语言课后作业

《汇编语言》课后作业 第一次作业 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,如下图:

大工19秋《汇编语言程序设计》大作业题目及要求

学习中心: 专业: 年级:年春/秋季 学号: 学生: 题目: 1.谈谈你对本课程学习过程中的心得体会与建议 2.《汇编语言程序设计》课程设计,从以下5个题目中任选其一作答。 《汇编语言程序设计》课程设计 注意:从以下5个题目中任选其一作答。 总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言 作业提交: 大作业上交时文件名写法为:[姓名奥鹏卡号学习中心](如:戴卫东浙江台州奥鹏学习中心[1]VIP) 以附件word文档形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业(注意命名),点提交即可。如下图所示。

注意事项: 独立完成作业,不准抄袭其他人或者请人代做,如有雷同作业,成绩以零分计! 题目一:进制转换程序 要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。 (2)算法思路:比如可设计二进制转化十六进制的算法, 简单介绍该算法的基本思想,100字左右即可。 (3)算法程序框图:绘制流程图或原理图,从算法的开始 到结束的程序框图。 (4)主要函数代码:列出算法的具体代码。 (5)列出算法中使用指令的含义,比如解释MOV指令的 含义,ADD指令的含义,至少撰写十个指令。 总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言! 题目二:冒泡排序算法 要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。 (2)算法思路:简单介绍冒泡排序算法的基本思想,至少 100字。 (3)算法程序框图:绘制流程图或原理图,从算法的开始 到结束的程序框图。

汇编语言程序第二次作业

一、单项选择题(只有一个选项正确,共10道小题) 1. 若PORT_VAL<5,则执行指令MOV BX,((PORT_VAL LT 5) AND 20) OR ((PORT_VAL GE 5) AND 30)后BX的内容是:()。 (A) 20 (B) 30 (C) 5 (D) 10 你选择的答案:未选择 [错误] 正确答案:A 解答参考: 2. 假设(AL)=10010010, MOV CL,4 SHL AL,CL 执行上述指令后CF和AL的内容是()。 (A) AF=1,(AL)=00001001 (B) AF=0,(AL)=00001001 (C) AF=1,(AL)=00100000 (D) AF=0,(AL)=00100000 正确答案:C 解答参考: 3. 下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为()。 TEST BH,01H _____K1 (A) JNE (B) JZ (C) JS (D) JC 正确答案:A 解答参考: 4. 已知标号NEXT与指令MOV AX,TYPE NEXT在同一个段内,则AX的值为()。

(A) 0 (B) 1 (C) 2 (D) -1 正确答案:B 解答参考: 5. DATA SEGMENT BUF DB 1,2,3,4,5 COUNT EQU -BUF DATA ENDS 在以上数据段中COUNT的值为( ) (A) 3 (B) 5 (C) 4 (D) 6 正确答案:B 解答参考: 6. 下列是8位二进制数的补码,其中真值最大的是()。 (A) 10001000 (B) 11111111 (C) 00000000 (D) 00000001 你选择的答案:未选择 [错误] 正确答案:D 解答参考: 7. 16位有符号数的补码所表示的十进制数的范围是()。 (A) -32767~+32768 (B) -32768~+32767 (C) -65535~+65536 (D) 0~65535 你选择的答案:未选择 [错误] 正确答案:B 解答参考:

汇编大作业

汇编语言课程设计 课题名称:学生成绩管理系统 小组成员: 班级: 指导教师: 日期:2014.06.18 一、选题目的: 熟悉汇编语言程序设计的实验环境,主要是熟悉汇编程序的基本结构,编译、连接和

调试等基本操作。利用该题目进行汇编语言程序设计运用的综合性训练,综合运用汇编语言循环程序和子程序编程方法,巩固以及提高汇编语言程序设计能力运用水平,为后续的开发和实验工作打好基础。 二、功能设计: 编制一个程序,要求接收从键盘收入的一个班的学生成绩,并存放于50字节的GRADE 数组中,其中GRADE+N保存学号N+1的学生成绩,然后根据GRADE得学生成绩,把学生名次填入50自己的RANK数组中,其中RANK+N的内容是学号N+1学生的名次,在按学号把学生顺序学生名次显示出来。 三、算法流程图:

四、运行结果:

从键盘输入三个学生的姓名和成绩,按学生成绩升序排序,并显示出排序结果 五、程序源代码: data segment infor0 db 0ah,0dh,'sort=$' infor1 db 0ah,0dh,'input name:$' infor2 db 0ah,0dh,'input score:$' n equ 8 姓名长度 m equ 4 成绩长度(3位+回车符) p equ 3 输入的人数 q equ 3 成绩的位数 buff1 db n,?,n dup(0),'$' 姓名缓冲区,加$字符以便输入时用 buff2 db m,?,m dup(0),'$' 成绩缓冲区 sname db p dup(n+1 dup(0)) 保存姓名 score1 dw p dup(m+1 dup(0)) 保存成绩 score2 dw p dup(m+1 dup(0)) mingci db p dup(0) 名次 x dw ? sign1 dw 0 sign2 dw 0 cont db '1' 计数

汇编语言期末试卷复习(附答案)

选择题 1. 已知X=78,Y= -83则[X+Y]补=() A.0F5H B.0A1H C.0FBH D.65H 2. MOV AX, ES:COUNT[DI] 源操作数的寻址方式是() A.基址寻址 B.立即寻址 C.变址寻址 D.基址变址寻址 3. 指令MOV BX, MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为() A.17500H B.16500H C.14500H D.13500H 4. 下列四组寄存器中,在段内寻址时可以提供偏移地址的寄存器组是() A.AX,BX,CX,DX B.BP,SP,IP,CS C.BX,BP,SI,DI D.BH,BL,CH,CL 5. 当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是() A. 表示结果中含1的个数为偶数 B. 表示结果中含1的个数为奇数 C. 表示该数为偶数 D. 表示结果中低八位含1的个数为偶数 6. 下列传送指令中,有语法错误的指令是()。 A.MOV CS,AX B.MOV DS,AX C.MOV ES,AX D.MOV SS,AX 7. MOV SP,3210H PUSH AX执行上述指令序理后,SP寄存器的值是()。 A.3211H B. 320EH C.320FH D. 3212H 8. 设(DH)=20H,执行NEG DH指令后,正确的结果是() A.(DH)=20H CF=1 B.(DH)=20H CF=0 C.(DH)=0E0H CF=0 D.(DH)=0E0H CF=1 9. 执行下面指令序列后,结果是() MOV AL,82H CBW A.AX=0FF82H B.AX=8082H C.AX=0082H D.AX=0F82H

大工19春《汇编语言程序设计》在线作业1

(单选题)1: 对计算机的软件、硬件进行管理的是()的功能。 A: 操作系统 B: 数据库管理系统 C: 编译器 D: 用户程序 正确答案: (单选题)2: 以下有关运算器运算功能的描述,()是正确的。 A: 只做加法 B: 只做算术运算 C: 既做算术运算又做逻辑运算 D: 只做逻辑运算 正确答案: (单选题)3: 一个完整的计算机系统应包括()。 A: 运算器、存储器、控制器 B: 外部设备和主机 C: 主机和应用程序 D: 配套的硬件和软件系统 正确答案: (单选题)4: 运算器虽有许多部件组成,但核心部分是()。 A: 数据总线 B: 算术逻辑运算单元 C: cache D: CPU和寄存器 正确答案: (单选题)5: 在计算机系统中,存储器是记忆设备,它主要用来()。 A: 存放数据 B: 存放程序 C: 存放数据和程序 D: 存放微程序 正确答案: (单选题)6: 在变址寄存器寻址方式中,若变址寄存器的内容是4E3C(16进制),给出的偏移量是62(16进制),则它对应的有效地址是()(16进制)。 A: 63 B: 4D9F C: 4E3C D: 4E9E 正确答案: (单选题)7: 在变址寄存器寻址方式中,操作数的有效地址等于()。

A: 基值寄存器内容加上位移量 B: 堆栈指示器内容加上位移量 C: 变址寄存器内容加上位移量 D: 程序记数器内容加上位移量 正确答案: (单选题)8: 在指令系统的寻址方式中,先计算后访问内存的寻址方式是()。A: 立即数寻址 B: 直接寻址 C: 间接寻址 D: 变址选址 正确答案: (单选题)9: 下面的数值表示中,和十进制127相等的是哪一个()。 A: 1113B B: 127H C: 80H D: 7FH 正确答案: (单选题)10: 如果(AL)=35H,执行AND AL,0FFH指令后,CF=()。 A: 0 B: 1 C: 2 D: 3 正确答案: (判断题)11: 计算机系统通过接口与外围设备通信。 A: 对 B: 错 正确答案: (判断题)12: 寄存器在计算机系统中是一个重要部件,只能用于暂存数据。A: 对 B: 错 正确答案: (判断题)13: 八进制数据31转化成十进制数据为30。 A: 对 B: 错 正确答案: (判断题)14: 在所有的进位计数制中,整数部分最低位的权都是1。 A: 对

汇编语言编程实验报告

汇编语言编程实验报告 学号: 姓名: 成绩:

目录 一、实验一: ................................................... 错误!未定义书签。 二、实验二: (4) 三、实验三: (8) 四、实验四: (10) 五、实验五: ................................................... 错误!未定义书签。 六、实验六: (19) 七、汇编实验总结 (23)

实验一 一.实验题目 【汇编语言补充作业T20】编写完整程序,利用DOS系统功能调用,从键盘输入一个字符串,并将该字符串从屏幕上换行后并输出。 二.程序流程及思路 实现字符串输入,需要分成三个步骤: 1、在数据段中定义一个缓存区为存放字符串做准备; 2、DOS系统功能调用0AH号子功能,(DS:DX)= 输入缓冲区首址; 3、在输入的字符串尾加上‘$’字符,以作为输出结束条件。 实现字符串输出,则需要注意的问题是: 1、缓冲区第三个字节才开始存放输入的字符,前两个字节分别存放缓冲区长度 和字符串实际字符数; 2、输出回车换行可利用字符串:CR DB 0AH,0DH,’$’。 三.源程序清单 DATA SEGMENT N EQU 50 MAXLEN DB N ;缓冲区字符的最大长度 ACTLEN DB ? ;实际字符个数 STRING DB N DUP(?) ;字符空间 CR DB 0AH,0DH,'$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX LEA DX,MAXLEN MOV AH,0AH INT 21H ;字符串输入 MOV AH,09H LEA DX,CR INT 21H ;回车换行 MOV BL,MAXLEN+1 ;取实际的字符长度 MOV BH,0 LEA SI,MAXLEN+2 ;取字符开始的首地址

大工19秋《汇编语言程序设计》大作业题目及要求

学习中心: 专业: 年级:年春/秋季 学号: 学生: 题目: 1.谈谈你对本课程学习过程中的心得体会与建议? 2.《汇编语言程序设计》课程设计,从以下5个题目中任选其一作答。 《汇编语言程序设计》课程设计 注意:从以下5个题目中任选其一作答。 总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言 作业提交: 大作业上交时文件名写法为:[姓名奥鹏卡号学习中心](如:戴卫东101410013979浙江台州奥鹏学习中心[1]VIP) 以附件word文档形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业(注意命名),点提交即可。如下图所示。 注意事项: 独立完成作业,不准抄袭其他人或者请人代做,如有雷同作业,成绩以零分计! 题目一:进制转换程序 要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。

(2)算法思路:比如可设计二进制转化十六进制的算法,简 单介绍该算法的基本思想,100字左右即可。 (3)算法程序框图:绘制流程图或原理图,从算法的开始到 结束的程序框图。 (4)主要函数代码:列出算法的具体代码。 (5)列出算法中使用指令的含义,比如解释MOV指令的含 义,ADD指令的含义,至少撰写十个指令。 总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言! 题目二:冒泡排序算法 要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。 (2)算法思路:简单介绍冒泡排序算法的基本思想,至少 100字。 (3)算法程序框图:绘制流程图或原理图,从算法的开始 到结束的程序框图。 (4)主要函数代码:列出算法的具体代码,如讲一个首地址 为A的N字数组,编制程序将该数组中的数据按照从大 到小排序。 (5)列出算法中使用指令的含义,比如解释MOV指令 的含义,CMP指令的含义,至少撰写十个指令。 总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言! 题目三:设立标志位算法 要求:(1)撰写一份word文档,里面包括(算法思路、算法程

汇编语言与微机接口技术作业6章(含答案)

作业: 课本6.5 6.7 第6章补充题参考答案 补充题1:初始化8259A控制器,系统中有一片8259A,中断请求用电平触发,中断类型号为60H~67H,特殊全嵌套方式,不用缓冲方式,采用中断自动结束方式。8259A端口地址为93H/94H。编写其初始化程序。 答: MOV AL, 1BH ;设置ICW1(中断请求信号采用电平触发方式,单片,

OUT 94H, AL MOV AL, 60H ;设置ICW2(将中断类型码高5位指定为01100) OUT 93H, AL MOV AL, 13H ;设置ICW4(用特殊全嵌套方式;用中断自动结束方式;采用非缓冲方式,工作于8088/8086系统) OUT 93H, AL 补充题2:开关K4的信号输入到中断控制器8259A的IR2,当K4开关合上瞬间,产生中断,在中断服务程序中完成读取开关K0~K3的状态,并在7段数码管上显示数字或符号。设输出接口的地址为3F2H,输入接口地址为3F3H。当开关K0~K3的状态分别为0000~1111时,在7段数码管上对应显示’0’~’F’,8259A的端口为3F0H和3F1H.设其中断号为08H~0FH。1. 设计相关的接口电路,包括8259A的连接。 2. 编写主程序完成初始化8259A和相关中断向量的设置。 3. 编写中断服务程序。 答: 1. 接口电路图 2. 初始化程序: INPORT EQU 03F3H OUTPORT EQU 03F2H PORT8259 EQU 03F0H …… ;设置数码管显示数据 Seg7 DB 3FH,06H, 5BH,4FH,66H,6DH, 7DH,07H,7FH,67H,77H, 7CH,39H,5EH,79H,71H …… MOV AL, 13H ;设置ICW1(中断请求信号采用边沿触发方式,单片,

相关文档
相关文档 最新文档