当前位置:文档之家› 汇编语言程序设计课程

汇编语言程序设计课程

汇编语言程序设计课程
汇编语言程序设计课程

汇编语言程序设计复习参考题一

一、填空(每空1分,共20分)。

1、8086CPU有_20_根地址线,可直接寻址_ 1M_字节的存储空间。

2、-1的8位二进制补码是__ 0FFH_。

3、IBM-PC系列微机可访问的外设端口的地址范围是从___0___到__ 3FFH__。

4、在8086CPU中,当_M/-IO=1时,访问存储器,当_M/-IO=0时,访问I/O端口。

5、在8086CPU中,对I/O端口的寻址有_存储器编址方法_和_I/O端口编址方法_。

6、在8086CPU指令系统中,要获得数组变量所占的总字节数,使用__ SIZE__运算符,

要获得数组变量的元素个数,使用_ LENGTH_运算符,要获得变量的类型数字,使

用__ TYPE__运算符。

7、符号‘$’代表___当前位置计数器___的现行值,定位伪指令ORG是把某一个值赋

给__当前位置计数器__,表示以给定值作起始偏移量。

8、若一个数据块的起始地址为70A0H :DDF6H,则这个数据块起始地址的实际地址

为__ 7E7F6H__。

9、如果一条指令使用标号,那么该标号就是这条指令的__首__地址,且它代表该指令

的__第一字节__的地址。

10、在宏汇编语言中,宏指令的使用过程是__定义__、__调用__、__展开__。

二、单项选择题(每空1分,共20分)

1、两个非组合型BCD码数据相加后,执行加法校正指令AAA是,首先检查是否需要

校正。需要校正的条件有:AF=1、CF=L和( D )。

A.AL中高四位数的值>9

B.AL中高四位数的值<9

C.AL中低四位数的值<9

D.AL中低四位数的值>9

2、8086的I/O空间段寄存器使用的是(B )

A.DS

B.没必要

C.ES

D.SS

3、I/O端口间接寻址方式是将被寻址的端口地址存放在( A )

A.DX

B.AX

C.BX

D.CX

4、8086/8088CPU的输入指令是将输入设备的一个端口中的数据传送到( B )

A.IP

B.AL/AX

C.BP

D.BX/CX

5、I/O设备的数据端口是( C )

A.32

B.64

C.8/16

D.16/32

6、为了保证用户程序执行完后能正常返回DOS,常使用的一种方法是在程序执行的最

后一条指令为RET。但使用该方法要在程序执行前进行一系列的保护操作( B )

A. MOV AX, DATA

MOV DS, AX

MOV ES, AX

B. PUSH DS

MOV AX, 0

PUSH AX

C. MOV AH, 4CH

INT 21H

D. MOV AX, DATA

MOV DS, AX

PUSH AX

7、不用立即数,也不用任何存储单元中的数据,能完成AX ←-1, BX ←0, CX ←1的程序段是( A )

A. XOR AX, AX

MOV BX, AX

INC AX

MOV CX, AX

NEG AX

B. OR AX, AX

MOV BX, AX

INC AX

MOV CX, AX

NEG AX

C. AND AX, AX

MOV BX, AX

INC AX

MOV CX, AX

NEG AX

D. XOR AX, AX

MOV BX, AX

DEC AX

MOV CX, AX

NEG AX

8、DA DW ‘AB’, ‘CD’

DB1 DB ‘X’

……

则执行指令语句XCHF DB1, BYTE PTR DA 后,结果DB1中的内容是( B )

A. ‘A’

B.42H

C.41H

D.’C’

9、下列伪指令中可以用来定义变量的是( A )

A.TYPE

B.DB

C.WORD

D.BYTE

10、在汇编过程中不产生指令代码,只用来指示汇编程序如何汇编的指令是(B )

A.宏指令

B.伪指令

C.机器指令

D.汇编指令

11、下面伪指令定义后,其变量对应的物理地址是( A )

ORG 0100H

BUF DB 10 DUP(?)

CON DW 2 DUP(?)

A. BUF DS:0100H

CON DS:010AH

B. BUF DS:010AH

CON DS:0101H

C. BUF DS:0110H

CON DS:011CH

D. BUF DS:0100H

CON DS:0101H

12、在ASSUME伪指令设定了段寄存器后,无需在程序段中用指令完成赋值的寄存器是( A )

A.CS

B.DS

C.ES

D.AX

13、指令代码的地址存放在寄存器( C )中

A.DS, SI

B.ES, DI

C.CS, IP

D.BX, BP

14、指令PUSH AX的正确操作是( C )

A.SP←SP + 1

AH→(SP)

SP←SP + 1

AL→(SP)

B. SP←SP - 1

AL→(SP)

SP←SP - 1

AH→(SP)

C. SP←SP- 1

AH→(SP)

SP←SP - 1

AL→(SP)

D.以上均不正确

15、在取MOV BX 0125H指令的源操作数时,使用的逻辑地址时( A )

A.CS:IP

B.DS:0125H

C.ES:0125H

D.无

16、在8086/8088中,可以分为两个独立的8位寄存器使用的寄存器是( B )

A.AX,DI,BP,SI

B.AX,BX,CX,DX,F

C.SI, DI,BP,SP,IP

D.CS,ES,DS,SS

17、设SP的初值为200H,执行指令”PUSH AX”后,SP的值为( D )

A.198H

B.200H C 202H D.1FEH

18、伪指令“ENDP”告诉汇编程序( B )

A.宏定义结束

B.过程定义结束

C.段定义结束

D.用户程序结束

19、ADD AL, BL

AAA

设执行前(AX)=0535H, (BL)=39H, 则执行上述指令后,AX中的内容为( A )

A.0604H

B.0574H

C.0104H

D.056EH

20、设(SS)=1E56H,(SP)=38H,则执行指令“RET 6”后,SP的值以及SP所指向

的存储单元的物理地址分别是( D )

A.3FH, 1E5A0H

B.42H, 1E5C6H

C.39H, 1E5E2H

D.42H,1E5A2H

三、判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。每题3

分,共15分)

1、MOV AX,0FFH

MOV CS,AX ( ×)

改:

MOV AX,0FFH

MOV DS,AX

2、MOV AX,100

ADD AX,[BX]

DAA ( ×)

改:

MOV AL,100

ADD AL,[BX]

DAA

3、…

A1 DB 10H

A2 DB ?

CMP A1,A2 ( ×)

改:

A1 DB 10H

A2 DB ?

MOV AL, A1

CMP AL,A2

4、DATA0 DB 100

MOV [DA TA0],AX

PUSH AX

…( ×)

改:

DATA0 DW 100

MOV [DA TA0],AX

PUSH AX

5、MOV AL,01H

OUT 2F8H,AL ( ×)

改:

MOV AL,01H

MOV DX, 2F8H

OUT DX,AL

四、写出下面程序段的运行结果或功能(20分)

1、DESG SEGMENT AT 1000H

ORG 6

V AR1 DB 2,8

ORG $+2

V AR2 DW 569AH

DB ‘1234’

DESG ENDS

画出上面程序的内存分配图:

答案:

2、MOV DL,31H

MOV AH,2

INT 21H

指出该程序段的功能:(2分)

答案:显示数字1

3、CLC

MOV CX,0FFFFH

INC CX

执行该程序段后,CX=__ 0__,ZF=_____1____。

4、MOV AL,100

CMP AL,100

执行该程序段后,AL=_____100____,CF=_____0_____。

5、下列程序段完成什么功能?

DATA1 DB 300 DUP(?)

DATA2 DB 100 DUP(?)

……..

MOV CX, 100

MOV BX, 200

MOV SI, 0

MOV DI, 0

L1: MOV AL, DATA1[BX][SI]

MOV DATA1[DI]

INC SI

INC DI

LOOP L1

答案:将DA TA1的后100个字节传输到DA TA2开始的存储单元中。

四、编程(20分)

计算表达式Z=(X2+ 2Y + Y2) / 2,设X,Y均为单字节正整数,结果Z为字数据。写完整的程序,完成给定的功能。(设X=23H, Y=0F6H)

答案:

TITLE CALCULATE Z=(X2+ 2Y + Y2) / 2

DA TA SEGMENT

X DB 23H

Y DB 0F6H

Z DW ?

DA TA ENDS

STACK SEGMENT PARA STACK ‘stack’

DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STACK

START PROC FAR

BEGIN: PUSH DS

MOV AX, 0

PUSH AX

MOV AX, DA TA

MOV DS, AX

MOV AL, X

MOV AH,0

MOV BL, Y

MOV BH, 0

MUL AL

MOV CX, AX

MOV AX, BX

MUL AL

ADD BX,BX

ADD AX,BX

ADD AX,CX

DIV AX, 2

MOV Z, AX

RET

START ENDP

CODE ENDS

END BEGIN

汇编语言程序设计复习参考题二

一、填空(每空1分,共20分)。

1、在PC系列微机中,从00000H至003FFH内存中存放着_中断向量表___。

2、设堆栈指针(SP)=2200H,此时若将AF、AX、BX、CX依次压入堆栈后,(SP)

=_21F8H _。

1、8086/8088CPU寻址外设端口的两种寻址方式为直接寻址和间接端口寻址。

2、凡地址能被_16_整除的单元可定义为段的起始单元。

3、程序段MOV AL,64H

MOV BL,-1

CMP AL,BL

ADD AL,AL

执行后,(AL)=_ C8H _,(BL)=_ 0FFH _,CF=_0__。

4、程序段

MOV AL, 40H

ADD AL, AL

ADC AL, AL

ADC AL, AL

执行后,(AL)=_01H _, CF=__0 ___。

5、在8086/8088CPU串操作寻址中,隐含使用变址寄存器SI、DI。若_ DF=0_时,SI、

DI自动增量,否则自动减量。

6、在8086/8088CPU基址变址寻址操作中,当基址寄存器选用BP时,隐含使用的段

寄存器是__ SS ___,当选用BX时,隐含使用的段寄存器是__ DS __。

7、OFFSET用于获得一个变量或标号在其段内的___偏移量___。

8、在8086/8088指令系统中,__组合型BCD码__是一个字节表示两个BCD码,__非

组合型BCD码_是一个字节的低4位表示一个BCD码,高4位通常为0000或0011

等。

9、在用指令MUL进行字节乘法时,一个操作数隐含使用寄存器_ AL _,运算所得结

果隐含地存放在寄存器_ AX __。

10、执行CALL指令,对标志寄存器_无影响_。

11、在编写子程序时,必须注意一个子程序执行的最后一条指令一定是还回指令__

RET _,用以还回到调用该子程序的断点处。

二、单项选择题(每空1分,共20分)

1、二进制数1000 0000为带符号的补码时,表示( A ).

A.-128

B.-0

C.-127

D.128

2、在计算机内,字符均用ASCII码表示,一个字符在存储器中占用( B )

A.4BIT

B.1个字节

C.一个字

D.一个双字

3、在计算机内,机器数均用( )来表示

A.原码

B.反码

C.补码

D.ASCII码

4、BCD码是二进制编码的十进制数,一个16位的十进制数或非组合BCD码在机内要

占用( C )个字节单元

A.4

B.8

C.16

D.32

5、8086CPU产生存储单元的物理地址是由( B )组合产生的

A.CS和IP

B.段基址和偏移地址

C.SS和SP

D.有效地址和相对地址

6、标志位( D )用于控制串操作的方向(增量或减量)

A.AF

B.PF

C.IF

D.DF

7、8086CPU访问(读/写)一次存储器或I/O接口所用的时间,称为一个( C

)

A.基本指令执行时间

B.时钟周期

C.总线周期

D.指令周期

8、8086的基本总线周期长度是( D )(不含等待)

A.3T

B.TI

C.一个指令周期

D.4T

9、8086CPU寻址I/O端口是,若要访问1024个字节端口或512个字节端口时,至少要

使用( C )根地址线

A.4

B.8

C.10

D.16

10、指令PUSH DS的目的操作数是( D )寻址方式

A.寄存器

B.寄存器间接

C.直接

D.隐含(固定)

11、已知(SI)=0004H, (DS)=8000H, (80004H)=02H, (80005H)=C3H,指令LEA AX, [SI]执行后,(AX)= ( B )

A.0002H

B.0004H

C.02H

D.C302H

12、已知(AL0=A3H, 指令CBW执行后,(AX)=( B )

A.00A3H

B.FFA3H

C.0FA3H

D.A300H

13、( D )是一种能被计算机识别和执行的语言

A.汇编语言

B.高级语言

C.算法语言

D.机器语言

14、八位微计算机用补码所能表示的数的范围是( A )

A.-128~127

B.-127~127

C.0~255

D.0~256

15、八位微处理器的地址线AB为16条,则能组合成( A )种不同的地址码

A.216

B. 216- 1

C.215

D. 215-1

16、两个八位二进制数0000 0110和1111 1100相加,则( C )成立

A.视为两个无符号数相加时,发生溢出,视为两个带符号数相加时,发生溢出

B.视为两个无符号数相加时,不发生溢出,视为两个带符号数相加时,发生溢出

C.视为两个无符号数相加时,发生溢出,视为两个带符号数相加时,不发生溢出

D.视为两个无符号数相加时,不发生溢出,视为两个带符号数相加时,不发生溢出

17、8086CPU内部由两个独立的工作部件构成,它们是( A )

A.执行部件和总线接口部件

B.执行部件和地址、数据缓冲器

B.运算器和控制器C。运算器和寄存器阵列

18、已知(AL)=36H, (BL)=02H, 执行指令MUL BL后,AH和AL的值分别为( B

)

A.(AH)=03H, (AL)=2AH

B.(AH)=00H, (AL)=6CH

C.(AH)=FFH, (AL)=6CH

D.(AH)=03H, (AL)=6CH

19、一个存储单元的实际地址为25342H,若其段首址为234E0H,则其段内偏移地址为

( B )

A.1F41H

B.1F42H

C.5432H

D.01FAH

20、与DB ‘A’, ‘B’等效的指令是( A )

A.DB ‘BA’

B.DW ‘BA’

C.DW ‘AB’

D.DW ‘A’, ‘B’

三、判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。每题3分,共15分)

1、MOV A L,512 ( ×)

改:MOV AX,258

2、SAL BX, 2 ( ×)

改:SAL CL, 2

3、OR AX, 504H AND 208H ( √)

4、MOV DS, 0200H ( ×)

改:MOV AX, 0200H

MOV DS, AX

5、ADD AX, BX [SI] ( ×)

改:ADD AX, [BX] [SI

四、写出下面程序段的运行结果或功能(每空2分,共15分)

1、已知(SP)=100H,执行指令

POP AX

PUSH CX

PUSH DX后,则(SP)= 0FEH

2、已知(BX)=128,执行指令

DEC BX

MOV AX, BX

NEG AX

INC AX

ADD BX, AX 后

则(BX)= 0001H (AX)= FF82H

3、执行指令

MOV AL, 85H

SUB AL, 36H

DAS

MOV BH, AL

ADD AL, 36H后

则(AL)= 7FH (BH)= ___49H ______

五、编程(30分)

1、试编写一汇编程序段,完成下面数学表达式的功能。

W = X + Y – Z (W, X, Y, Z均为双字变量)

答案:

MOV AX, X

ADD AX, Y

MOV BX, X + 2

ADC BX, Y + 2

SUB AX, Z

SBB BX, Z + 2

MOV W, AX

MOV W + 2, BX

2、设在数据段,附加段,和堆栈段中,分别定义了字变量X、Y、Z,试编制一完整的汇编

语言程序,计算:W = X +Y +Z (设X= 0250H, Y = 0660H, Z = 0320H)

答案:

TITLE CALCULATE W = X +Y +Z

DA TA SEGMENT

X DW 0250H

W DW ?

DA TA ENDS

STACK SEGMENT PARA STACK ‘stack’

Z DW 0320H

DB 100 DUP(?)

STACK ENDS

EXTRA SEGMENT

Y DW 0660H

EXTRA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, ES:EXTRA, SS:STACK

BEGIN: MOV AX, DA TA

MOV DS, AX

MOV AX, ERTRA

MOV ES, AX

MOV AX, X

ADD AX, ES:Y

ADD AX, SS:Z

MOV W, AX

MOV AH, 4CH

INT 21H

CODE ENDS

END BEGIN

汇编语言程序设计复习参考题三

一、填空(20分,每空1分)。

1、当由逻辑地址转换为物理地址时,是将段寄存器的内容左移( 4 )位,再加上偏

移量形成( 20 )位的物理地址。

2、现对一个字节/字的数求反用指令(NOT )。

3、JMP指令的段内直接寻址的目标代码为二字节长,该指令首字节偏移量为200H,

那么正的相对转移能到达的最远的偏移量是( 281H ),负的相对转移能到达的最远的偏移量是( 182H )。

4、表示宏定义结束和重复汇编结束是用伪指令( ENDM )实现。

5、在debug状态下装入可执行文件后,程序的目标代码和数据已全部送入内存指定单

元,此时DS、ES将指向(程序段前缀的段基值)。

6、写出下列指令中存储器操作数的物理地址计算表达式:

(1)MOV AL, [SI]

则___ PA=DS * 16 + (SI)______

(2) SUB 40H[BX],AX

则____ PA=DS * 16 +(40H +BX)_____

(3) INC SS: 5[BX][SI]

则____ PA =SS *16 +(5 +BX +SI)_______

7、在8086/8088CPU中,可用与作地址指针的寄存器有(BX ), (BP ), ( SP ), (SI

)和DI。

8、8086/8088在程序中表达一个存储单元地址是用逻辑地址,逻辑地址是由(段基址)

和(偏移地址)两部分组成。

9、若CS =5200H,某条指令第一字节物理地址为5A230H,当CS=7800H时,该条指

令第一字节物理地址是(80230H )。

10、输入输出的控制方式有(程序控制)、(中断)、( DMA )。

二、单项选择题(20分)

1、执行下列指令时,需要使用段寄存器DS的是(B )

A.PUSHF

B.MOV [BX], AX

C.SAHF

D.MOV [BP], CX

2、SP=F000H, BH = 20H, BL = 08H, 执行PUSH BX指令后(D )

A.SP = 0F002H, (0F001H) = 20H, (0F002H) = 08H

B.SP = 0EFFEH, (0EFFFH) = 08H, (0EFFEH) = 20H

C SP = 0EFFFH, (0F000H) = 20H, (0F002H) = 08H

D.SP = 0EFFEH, (0EFFFH) = 20H, (0EFFEH) = 08H

3、下列语句有语法错误的语句是(A )

A. MOV AX, [BX][BP]

B. ADD AX, [BX]

C. CMP [BX], 0FH

D. LEA SI,20H[BX]

3、取MOV BX, 0123H 指令的源操作数时,使用的逻辑地址是(C )

A.无

B.DS:0123H

C.CS:IP

D.ES:0123H

5、两个非组合型BCD码数据相减后,执行减法校正指令AAS时,首先检查是否需要

校正。需要校正的条件有(D )

A.AL中的数>9, 且AF = 1

B.AL中低四位的数>9,且AF =1

C.AL中的数>9,或AF =1

D.AL中低四位的数>9,或AF =1

6、用REPNE CMPSB指令作两个字符串比较时,如果CX≠0,比较结束,原因是(A )

A.两字符串相等

B.两字符串不等

C.两字符串长度不等

D.两字符串大小不同

7、CPU响应可屏蔽中断请求是通过(D )引脚发出两个负脉冲通知外设。

A.NMI

B.RESET

C.ALE

D.INTR

8、下列寄存器中在段内寻址时可以提供偏移地址的是(B )

A.AX, BX, CX, DX

B.BP, BX, SI, DI

C.SP, IP

D.CS,SS,DS,ES

9、下列地址可以做为一个段的起始地址的是(D )

A.01234H

B.0FFF68H

C.8E476H

D.46560H

10、下列指令中操作数在代码段中的是(C )

A.INC [BX]

B.ADD AH, BL

C.MOV AL, 25H

D.CMP AX, 20H[SI]

11、有数据定义伪指令DB 10H DUP(4, 2DUP(2))所定义的数据单元中有数据‘0402H’的字存储单元的个数是(D )

A.10H

B.08H

C.0EH

D.0FH

12、在中断向量表中,以地址34H为首地址的连续四个字节单元中放有一中断处理程序入口地址,它所对应的中断源的中断类型号为(B )

A.4

B.13

C.21

D.45

13、8088的F寄存器包含几个标志位(A )

A.9

B.7

C.5

D.8

14、从键盘输入的数据,通常是以什么数制或代码表示的(C )

A.二进制

B.十六进制

C.ASCII 码

D.八进制

15、8088中那些寄存器不可以进行数据传送(C )

A.SI, DI

B. FLAG, IP

C.IP, CS

D.BP,SP

16、在堆栈操作中,隐含使用的通用寄存器是(D )

A.SI

B.BP

C. IP

D.SP

17、执行指令序列

MOV AL, 82H

CBW

后,则结果是( A )

A.AX = 0FF82H

B.AL = 82H,AH中内容不变

C.AX = 0082H C.AX = 0F8CH

18、串传送指令MOVS的源操作数和目的操作数可来自( A )

A.源操作数来自DS:[SI],目的操作数来自ES:[DI]

B.源操作数来自DS:[SI],目的操作数来自DS:[DI]

C.源操作数来自ES:[SI],目的操作数来自ES:[DI]

D. 源操作数来自DS:[SI],目的操作数来自SS:[DI]

19、IF标志位的复位或置位,只影响CPU对(D )

A.NMI

B.单步中断

C.内部中断

D.INTR

20、条件转移类指令的跳转距离范围是( B )字节

A.1~256

B.-128~127

C.-127~127

D.-127~128

三、判断题(判断正误,正确的划上“√”,错误的划上“×”。每题2分,共20分)

(1)8088是16位微处理器( ×) (2)物理地址是唯一代表存储空间中每个字节单元的地址( √) (3)堆栈是以先进后出的方式工作的存储空间( √) (4)8088/8086只能用SP寻址堆栈段( ×) (5)汇编程序是把汇编语言编写的源程序翻译成可执行的目标程序( ×) (6)伪指令是由汇编程序在汇编过程执行的指令( √) (7)-0的反码是0 ( ×)

(8)有效地址是指内存中的实际地址( ×) (9)符号定义伪指令’EQU’和‘=’用法一样,没有区别( ×) (10)数据既可以从数据段中获取,也可以从其他任何段中获取( √)

四、读程序(共20分)

1、说明下列程序段完成的功能

BEGIN: IN AL, 5FH

TEST AL, 01H

JZ L1

MOV AH, 0

JMP L2

L1: MOV AH, OFFH

L2: HLT

程序功能:___答案:输入5FH端口的内容到AL寄存器,判断其奇偶性。如果为奇数,AH寄存器置0;如果为偶数,AH寄存器置0FFH。________________________

2、已知(DS) = 1250H, (BX)= 55H, (SI)= 46H, (125ABH) = 39BH, (125ADH) = 1210H,则

LDS DI, 10H[BX][SI]

MOV AL, 110H[DI]

上述两条语句执行后,(AL)=___ (AL)= 9BH __, (DI) = __(DI) = 039BH __

3、伪指令定义如下,画出内存示意图。

BUF DB ?

DW ‘AB’

DW ‘C’

DW 1234H

DB ‘ABCD’

五、编程(20分)

编写一完整的汇编语言源程序,实现Z=(X + Y)/2。设X、Y、Z都在数据段,且设X=5AH,Y=35H。

答案:

DA TA SEGMENT

X DB 5AH

Y DB 35H

Z DB ?

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START PROC FAR

BEGIN: PUSH DS

MOV AX, 0

PUSH AX

MOV AX, DA TA

MOV DS, AX

MOV AL, X

ADD AL, Y

MOV AH, 0

ADC AH, 00H

MOV BL, 02H

DIV BL

MOV Z, AL

RET

START ENDP

CODE ENDS

END BEGIN

参考答案:

汇编语言程序设计复习参考题一

一、填空(每空1分,共20分)。

1、20,1M

2、0FFH

3、0 3FFH

4、M/-IO=1,M/-IO=0

5、存储器编址方法I/O端口编址方法

6、SIZE,LENGTH,TYPE

7、当前位置计数器,当前位置计数器8、7E7F6H

9、首,第一字节10、定义、调用、展开

二、单项选择题(每空1分,共20分)

1、D

2、B

3、A

4、B

5、C

6、B

7、A

8、B

9、A 10、B 11、A 12、A 13、C 14、C 15、A 16、B

17、D 18、B 19、A 20、D

三、判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。每题3分,共15分)

1、×

改:

MOV AX,0FFH

MOV DS,AX

2、×

改:

MOV AL,100

ADD AL,[BX]

DAA

3、×

改:

A1 DB 10H

A2 DB ?

MOV AL, A1

CMP AL,A2

4、×

改:

DATA0 DW 100

MOV [DA TA0],AX

PUSH AX

5、×

改:

MOV AL,01H

MOV DX, 2F8H

OUT DX,AL

四、写出下面程序段的运行结果或功能(25分)

1、答案:

2、答案:显示数字1

3、答案:CX=0, ZF=1

4、答案:AL=100, CF=0

5、答案:将DATA1的后100个字节传输到DA TA2开始的存储单元中。

五、编程(20分)

答案:

TITLE CALCULATE Z=(X2+ 2Y + Y2) / 2

DA TA SEGMENT

X DB 23H

Y DB 0F6H

Z DW ?

DA TA ENDS

STACK SEGMENT PARA STACK ‘stack’

DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STACK

START PROC FAR

BEGIN: PUSH DS

MOV AX, 0

PUSH AX

MOV AX, DA TA

MOV DS, AX

MOV AL, X

MOV AH,0

MOV BL, Y

MOV BH, 0

MUL AL

MOV CX, AX

MOV AX, BX

MUL AL

ADD BX,BX

ADD AX,BX

ADD AX,CX

DIV AX, 2

MOV Z, AX

RET

START ENDP

CODE ENDS

END BEGIN

汇编语言程序设计复习参考题二

一、填空(每空1分,共20分)。

1、中断向量表

2、21F8H

3、直接寻址间接端口寻址

4、16

5、C8H 0FFH 0

6、01H 0

7、DF=0

8、SS,DS

9、偏移量

10、组合型BCD码,非组合型BCD码11、AL,AX

12、无影响13、RET

二、单项选择题(每空1分,共20分)

1、A.

2、B

3、C

4、B

5、B

6、D

7、C

8、D

9、C

10、D 11、B 12、B 13、D 14、A 15、A 16、C 17、A 18、B 19、B 20、A

三、判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。每题2分,共10分)

1、X

改:MOV AX,258

2、X

改:SAL CL, 2

3、√

4、X

改:MOV AX, 0200H

MOV DS, AX

5、X

改:ADD AX, [BX] [SI]

四、写出下面程序段的运行结果或功能(每空2分,共10分)

1、0FEH

2、0001H FF82H

3、7FH 49H

五、编程(30分)

1、(8分)

答案:

MOV AX, X

ADD AX, Y

MOV BX, X + 2

ADC BX, Y + 2

SUB AX, Z

SBB BX, Z + 2

MOV W, AX

MOV W + 2, BX

2、(10分)

答案:

TITLE CALCULATE W = X +Y +Z

DA TA SEGMENT

X DW 0250H

W DW ?

DA TA ENDS

STACK SEGMENT PARA STACK ‘stack’

Z DW 0320H

DB 100 DUP(?)

STACK ENDS

EXTRA SEGMENT

Y DW 0660H

EXTRA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, ES:EXTRA, SS:STACK

BEGIN: MOV AX, DA TA

MOV DS, AX

MOV AX, ERTRA

MOV ES, AX

MOV AX, X

ADD AX, ES:Y

ADD AX, SS:Z

MOV W, AX

MOV AH, 4CH

INT 21H

CODE ENDS

END BEGIN

汇编语言程序设计复习参考题三

一、填空(20分)

1、4 20

2、NOT

3、281H 182H

4、ENDM

5、程序段前缀的段基值

6、PA=DS * 16 + (SI) PA=DS * 16 +(40H +BX) PA =SS *16 +(5 +BX +SI)

7、BX , BP, SP, SI 8、段基址偏移地址9、80230H 10、程序控制、中断、DMA

二、单项选择题(20分)

1、B

2、D

3、A

4、C

5、D

6、A

7、D

8、B

9、D 10、C

11、D 12、B 13、A 14、C 15、C

16、D 17、A 18、A 19、D 20、B

三、判断题(判断正误,正确的划上“√”,错误的划上“×”。每题3分,共30分)

1、X

2、√

3、√

4、X

5、X

6、√

7、X

8、X

9、X 10、√

四、读程序(共20分)

1、答案:输入5FH端口的内容到AL寄存器,判断其奇偶性。如果为奇数,AH寄存器置0;如果为偶数,AH寄存器置0FFH。

2、答案:(AL)= 9BH, (DI) = 039BH

3、

五、编程(20分)

DA TA SEGMENT

X DB 5AH

Y DB 35H

Z DB ?

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START PROC FAR

BEGIN: PUSH DS

MOV AX, 0

PUSH AX

MOV AX, DA TA

MOV DS, AX

MOV AL, X

ADD AL, Y

MOV AH, 0

ADC AH, 00H

MOV BL, 02H

DIV BL

MOV Z, AL

RET

START ENDP

CODE ENDS

END BEGIN

汇编语言程序设计教学大纲

《汇编语言程序设计》课程教学大纲 二、课程简介 汇编语言是计算机能够提供给用户使用的最快最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而,对程序的空间和时间要求很高的场合及需要直接控制硬件的应用场合,汇编语言的应用是必不可少三、课程目标 汇编语言课程是计算机专业的一门专业选修课。通过本课程的学习,应使学 生系统地了解计算机组成原理与内部的运行机理,掌握汇编语言程序设计及相关 知识,为学习本专业后继课程和进行与硬件有关的技术工作打下良好基础。通过 上机实验,使学生受到软硬件实验的初步训练,并培养学生分析问题和解决问题 的能力。 四、教学内容及要求 第一章基础知识 1.教学内容 (1) 为什么要用汇编语言编写程序 (2) 进位计数制与不同基数的数之间的转换 (3) 二进制数和十六进制数运算 (4) 计算机中数和字符的表示 (5) 几种基本的逻辑运算 2.基本要求 了解机器指令、代码指令、机器语言、汇编指令、汇编语言、汇编语言源程 序、汇编程序、汇编等概念;掌握进位计数制与不同基数的数之间的转换及

运算;计算机中数和字符的表示;“与”、“或”、“非”、“异或”等几种基本的逻辑运算; 第二章80X86计算机组织 1.教学内容 计算机系统概述、存储器、中央处理机和外部设备。 2.基本要求 理解计算机的硬件和软件系统及其关系。掌握计算机的基本结构及总线;存储器的内容、地址及存储器的分段;中央处理机的组成、80X86系列CPU工作寄存器构成和功能,特别是段寄存器和标志寄存器;外设接口、端口和8086/8088的端口地址范围和访问方法。 第三章80X86的指令系统 1.教学内容(重点内容) IBM PC机的寻址方式、IBM PC机的指令系统。 2.基本要求 熟练掌握IBM PC机寻址方式及物理地址的计算;数据传送、算术、逻辑、串处理、控制转移和处理机控制指令六组中的所有指令的格式、操作、及影响的标志位。了解机器语言的指令组成; 第四章汇编语言程序格式 1.教学内容 汇编程序功能、伪操作、汇编语言程序格式、汇编语言程序的上机过程。 2.基本要求 掌握DEBUG程序和命令及能用DEBUG 程序调试和运行简单小程序;汇编语言上机步骤、汇编程序的功能;数据定义及存储器分配、表达式赋值“EQU”和“=”、段定义、程序开始和结束、对准、基数控制等六类伪操作;汇编语言程序格式中的名字、操作、操作数和注释等项。 第五章循环与分支程序设计 1.教学内容 程序设计的一般步骤和基本结构、循环程序设计和分支程序设计 2.基本要求 掌握汇编语言程序的编制步骤和结构化程序设计的三种基本结构;循环的设计方法和多层循环的设计;分支程序的设计方法,并能编制相应的程序。第六章子程序结构 1.教学内容 子程序的设计方法、嵌套与递归子程序、子程序举例和DOS系统功能调用

汇编语言程序设计实验教程

汇编语言程序设计实验教程

目录 第一章上机过程 (4) 1.1编辑源程序 (4) 1.2 汇编源程序 (5) 1.3连接目标程序 (6) 1.4运行程序 (7) 第二章DEBUG命令祥解 (8) 2.1 DEBUG程序使用 (8) 2.2 DEBUG的常用命令 (8) 第三章汇编语言程序设计实验 (13) 3.1实验一顺序与分支程序设计 (13) 3.2 实验二循环与子程序程序设计 (15) 3.3 实验三算术运算与代码转换程序设计 (16) 3.4 实验四字符串的匹配与替换程序设计 (18) 3.5 实验五输入输出程序设计 (19) 第四章部分实验参考答案 (21)

第一章上机过程 1.1编辑源程序 汇编语言源程序:用汇编语句编写的解决应用问题的程序。 汇编程序:将汇编语言源程序翻译成机器语言程序的系统。 汇编:将汇编语言程序翻译成机器语言程序的过程。 在编辑汇编语言源程序时,对计算机硬件工作环境无特殊要求,对软件工作环境要求也很简单,只需用建立ASCII码文本文件的软件即可。 (1)编辑软件 编辑软件:EDIT、QE、WORD、NOTEPAD等。 当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。 (2)汇编程序 有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。 (3)连接程序 用连接程序LINK.EXE或TLINK.EXE,将MASM.EXE产生的目标代码程序(.OBJ)文件连接成可执行程序.EXE,TLINK比LINK更先进。 (4)辅助工具程序(.EXE) 进行汇编语言程序调试和文件格式转换的程序有: https://www.doczj.com/doc/dc15293707.html, 动态调试程序 EXE2BIN.EXE文件格式转换程序

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

汇编语言程序设计课后习题解答宋人杰2版

第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据 的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为 多少?若段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著) 《计算机操作系统原理》 《Inside Windows 2000》(微软出版社,我看的是E文版的,中文的书名想必是Windows 2000 技术内幕之类吧)。 《数据结构和算法》——这门课程能够决定一个人程序设计水平的高低,是一门核心课程。我首选的是清华版的(朱战立,刘天时) 《软件工程》——这门课程是越到后来就越发现它的重要,虽然刚开始看时就象看马哲一样不知所云。我的建议是看《实用软件工程》(黄色,清华) 《Windows 程序设计》——《北京大学出版社,Petzold著》我建议任何企图设计Windows 程序的人在学习VC以前仔细的学完它。而且前面的那本 建议:你还可以在CSDN上阅读到许多书评。这些书评能够帮助你决定读什么样的书 关于编程的网站 计算机编程 郭新明-FTP服务器体验式学习课程(张孝祥监制) https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=3997 https://www.doczj.com/doc/dc15293707.html,快速开发新闻系统在线播放 https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=4708 数字电路基础[宁波电大] https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=774 计算机组成与汇编语言程序设计(赵丽梅)宁波电大 https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=1242 操作系统(陈访荣)宁波电大(在线播放) https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=4708 计算机网络(马敏飞)宁波电大 https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=1243 https://www.doczj.com/doc/dc15293707.html, 2.0快速入门(12)-https://www.doczj.com/doc/dc15293707.html, 2.0网站快速导航 https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=2501 Internet和Intranet应用(薛昭旺)宁波电大 https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=1245 2004年电脑硬件安装调试维修视频教学讲授 https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=4825 https://www.doczj.com/doc/dc15293707.html, 高级排错技巧 https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=768 SQL Server 2000管理专家系列课程 https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=4832 开心三人行系列(2):使用Atlas 构建AJAX应用 https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=2564 Visual Basic 2005开发技巧系列课程(4): 在Visual Basic 2005中使用.NET Framework 2.0新增功能 https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=2526 SQL Server 2005 系列课程-使用ADO https://www.doczj.com/doc/dc15293707.html,开发SQL Server 2005 OLAP应用 https://www.doczj.com/doc/dc15293707.html,/so/so138.aspx?id=2535

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

新版汇编语言程序设计习题答案(钱晓捷主编)电子教案

新版汇编语言程序设计习题答案(钱晓捷主 编)

新版汇编语言程序设计习题答案(钱晓捷主编) 第一章汇编语言基础知识 1.1、简述计算机系统的硬件组成及各部分作用 1.2、明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 1.3、什么是汇编语言源程序、汇编程序、目标程序? 1.4、汇编语言与高级语言相比有什么优缺点? 1.5、将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH (4)EFH (5)2EH (6)10H (7)1FH (8)ABH 1.6、将下列十进制数转换为BCD码表示 (1)12 (2)24 (3)68 (4)127 (5)128 (6)255 (7)1234 (8)2458 1.7、将下列BCD码转换为十进制数 (1)10010001 (2)10001001 (3)00110110 (4)10010000 (5)00001000 (6)10010111 (7)10000001 (8)00000010 1.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示 (1)0 (2)-127 (3)127 (4)-57 (5)126 (6)-126 (7)-128 (8)68 1.9、完成下列二进制数的运算 (1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000÷1001 (5)1011 ∧~1011 (8)1011 ⊕ 1001 1001(6)1011 ∨1001(7) 1.10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符? 1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符? 1.12、简述Intel 80x86系列微处理器在指令集方面的发展。 1.13、什么是DOS和ROM-BIOS? 1.14、简述PC机最低1MB主存空间的使用情况。 1.15、罗列8086CPU的8个8位和16位通用寄存器,并说明各自的作用。 1.16、什么是标志,它有什么用途?状态标志和控制标志有什么区别?画出标志寄存器FLAGS,说明各个标志的位置和含义。

2位数计算器程序-汇编语言课程设计

信息学院课程设计题目:2位数计算器程序设计 __ 姓名: __ _____ 学号: ____ ___ 班级: 课程:汇编语言 ________ 任课教师:侯艳艳 ____ 2011年12月

课程设计任务书及成绩评定

目录 摘要 (2) 1.设计目的………………………………………………………………………………………………?2 2.概要设计………………………………………………………………………………………………?3 2.1系统总体分析…………………………………………………………………………?3 2.2程序流程图 (3) 3.详细设计......................................................................................................? (4) 3.1主程序及子程序说明 (4) 3.2程序代码编写 (4) 4.程序调试 (6) 4.1运行界面分析 (6) 4.2算法的分析 (6) 4.3调试过程及分析 (6) 5.心得体会 (7) 5.1设计体会...................................................................................................? (7) 5.2系统改进...................................................................................................? (7) 参考文献 (8)

汇编语言程序设计(钱晓捷)课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(01) 2.1 (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h 2.2(1) 两操作数类型不匹配 (2) IP指令指针禁止用户访问 (3) 立即数不允许传给段寄存器 (4) 段寄存器之间不允许传送 (5) 两操作数类型不匹配 (6) 目的操作数应为[ BP ] (7) 源操作数应为[BX+DI] (8) 立即数不能作目的操作数 2.3 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h 2.6 AL=89h CF ZF SF OF PF AL=12h 1 0 0 1 1 AL=0afh 0 0 1 0 1 AL=0afh 1 0 1 0 1 AL=00h 0 1 0 0 1 AL=0ffh 0 0 1 0 1 AL=00h 0 1 0 0 1 2.7 W=X+Y+24-Z

2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H 2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax mov bx,dx ;bx,ax <-- dx,ax =A*B mov ax,Z ;ax = C cwd ;dx,ax =C (扩展符号后为双字) add cx,ax adc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+C sub cx,540 sbb bx,0 ;bx,cx<-- A*B+C-540 mov ax, V ;ax= D cwd ;dx,ax= D (扩展符号后为双字) sub ax, cx sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 第二章(02) 2.11; 指令AX的值CF OF SF ZF PF Mov ax,1407h1470h----- And ax,ax1470h00000 Or ax,ax1470h00000 Xor ax,ax000011 Not ax0ffffh----- Test ax,0f0f0h0ffffh00101 注意: 1. mov, not指令不影响标志位 2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版) 习题参考答案 第1章汇编语言基础知识 思考与练习 1.计算机系统分哪几个层次?简述计算机系统的硬件结构。 1)数字逻辑层 2) 微体系结构层 3) 指令系统层 4) 操作系统层 5) 汇编语言层 6) 高级语言层 7) 应用层 硬件系统是指构成计算机系统的物理实体或物理装置。它由控制器、运算器、存储器、输入设备和输出设备等部件构成。 2.简述用汇编语言进行程序设计的必要性。 1)程序要具有较快的执行时间,或者只能占用较小的存储容量。例如,操作系统的核 心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。 2)程序与计算机硬件密切相关,程序要直接、有效地控制硬件。例如,I/O接口电路 的初始化程序段,外部设备的低层驱动程序等。 3)大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动 态连接库等。 4)没有合适的高级语言或只能采用汇编语言的时候。例如,开发最新的处理器程序时, 暂时没有支持新指令的编译程序。 5)汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解 密软件、分析和防治计算机病毒等。 3.汉字编码主要分哪几类?每类的功能如何? 汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。 1)为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即用 西文标准键盘上的字母数字串表示汉字的编码。目前,汉字输入编码方法主要有三 种:数字编码、拼音编码和字形编码。 2)汉字交换码:在不同汉字信息处理系统间进行汉字交换时所使用的编码,就是国标 码。无论采用哪种方法输入汉字,一旦输入到计算机中,必须采用统一的国标码标 识每个汉字。 3)汉字机内码是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息 处理系统内部存储、处理、传输汉字用的编码。 4)字形编码也称为字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。4.计算机的字长是怎么定义的,试举例说明。 计算机能同时处理二进制信息的位宽定义为计算机的字长。如8086能同时进行16位二进制数据的运算、存储和传输等操作,该机器的字长为16位。 5.在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值? 用相应进制的数值加上进制标记即可。

大工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)算法程序框图:绘制流程图或原理图,从算法的开始 到结束的程序框图。

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)解析

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社) (沈美明,温冬蝉著) 第二章 1.解答:有256个 2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元 E5 1E 3C 2A 3.解答: 30022H字节单元内容: ABH 30024H字节单元内容: EFH 30021H字单元内容: AB34H 30022H字单元内容: CDABH 4.解答: 这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址 5.解答: CS+IP 第一个字的物理地址为: 0AAA40H 6.解答: 条件标志OF,SF,ZF,CF,的值依次为:0,0,0,0 7.下列操作可使用那些寄存器? (1)加法和减法AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH ,AL等(2)循环计数 CX (3)乘法和除法DX,AX,AH,AL (4)保存段地址CS ,DS,ES,SS (5)表示运算结果为O FLAGS (6)将要执行的指令地址IP (7) 将要从堆栈取出数据的地址BP,SP,SS 8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP 9.一一对应; 5--A 4--B 2--C 3--D 12--E 9--F 11--G 10--H 13--I 8--J 7--K 6---L 1--M 15--N 14--O 第三章 1.(1)立即寻址没有 (2)直接寻址7237H (3)使用BX的寄存器寻址没有 (4)使用BX的间接寻址 637DH (5)使用BX的寄存器相对寻址0D5B4H (6)基址变址寻址8E18H (7)相对基址变址004FH 2.根据下列要求,写出相应的汇编指令。 (1)ADD DX,BX (2) ADD AL,[BX][SI] (3) ADD [BX][0B2H], CX (4) MOV AX,2A59H ADD [0524H] ,AX (5) ADD AL ,0B5H

汇编语言程序设计课程教学大纲

课程教学大纲 (理论课) 课程名称:汇编语言程序设计 适用专业:计算机科学与技术 课程类别:学科基础课 制订时间: 2006年8月 数学与计算机科学学院制

汇编语言程序设计课程教学大纲 (2002年制订,2006年修订) 一、课程代码:0502121009 二、课程类别:学科基础课程 三、预修课程:计算机导论、高级语言程序设计等 四、学分: 4学分 五、学时: 86学时(其中实验部分32学时) 六、课程概述: 汇编语言是计算机能提供给用户最快也最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而在对于程序的空间和时间要求很高的场合,汇编语言是必不可少的,至于对于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可。 汇编语言作为计算机专业的一门必修课程是了解计算机体系结构和操作系统的最佳切入点。通过汇编语言课程的学习,对计算机理论中包括CPU体系结构、指令调度方式、存储器管理、基本输入输出接口的理解都会有一个比较本质而且直观的认识。在对汇编语言实际运用的基础上同时还能帮助对高级语言程序设计的深入体会,包括变量的组织,地址的访问,循环与分支在机器码中的处理,调用函数时参数的传递等,所以汇编语言在本专业中是一门核心的课程,通过对本课程的学习是加深对后续课程认识的基础。 七、教学目的: 通过对本课程的学习,掌握8086微处理器的寄存器组和基本寻址方式,学生要达到对程序在计算机中的基本调度有一定认识,对二进制基础理论有深入的理解,同时熟练掌握8086汇编语言的编写方式,掌握基本的系统调用,具备良好的源程序调试能力以及最基本的、实模式下的反汇编能力。

2013年汇编语言程序设计课程设计

2013年汇编语言程序设计课程设计 一、作业题目 2013年汇编语言程序设计大型作业给出了3道题目,供大家凭自己的兴趣自由选择其中之一完成。这3道作业题目如下: 1.通用进制转换程序 2.两位数加减乘除程序 3.高精度乘法程序 二、交付的文档材料 1.程序系统说明书 内容包括: (1)程序系统总体的功能模块调用图及模块功能说明。 (2)程序系统的详细框图(每个子程序的流程图)。 (3)程序界面图。 (4)程序清单。 2.设计和实现的技术特点、不足和改进的建议 3.课程设计的体会。 4.程序源程序和可执行程序 三、评分说明 独立完成:60分,雷同或抄袭者不及格; 设计技术及技巧使用:25分; 文档质量:10分; 按时完成:5分。 可以自主扩充功能,有创新加分。 四、参考书 1.课本 2.《IBM-PC汇编语言程序设计》清华大学出版社 五、交付时间:第十八周的周五。

题目一通用进制转换程序 一、题目要求 实现不同进制之间的相互转换。(常用进制二、八、十、十六进制) 程序功能: 1.能通过键盘输入任一种进制,有相应的提示信息。 例如please input a Binary data: 2. 输入的数据要有容错检测。 例如:输入的二进制数据为1200,则应该出现错误信息提示。(因为2在二进制中是不允许的 3.输出的数据要有进制选择。 例如:请选择输出数据的进制(0: 二进制,1: 八进制……) 二、重点考察 1.用汇编实现简单的算法。 2.用汇编实现简单的数据结构。 3.可执行程序的参数使用。 4.INT 21H系统功能调用中有关显示与输出的操作 5.综合解决问题的能力。

新版汇编语言程序设计习题答案(钱晓捷主编)

新版汇编语言程序设计习题答案(钱晓捷主编) 第一章汇编语言基础知识 1.1、简述计算机系统的硬件组成及各部分作用 1.2、明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 1.3、什么是汇编语言源程序、汇编程序、目标程序? 1.4、汇编语言与高级语言相比有什么优缺点? 1.5、将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH (4)EFH (5)2EH (6)10H (7)1FH (8)ABH 1.6、将下列十进制数转换为BCD码表示 (1)12 (2)24 (3)68 (4)127 (5)128 (6)255 (7)1234 (8)2458 1.7、将下列BCD码转换为十进制数 (1)10010001 (2)10001001 (3)00110110 (4)10010000 (5)00001000 (6)10010111 (7)10000001 (8)00000010 1.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示 (1)0 (2)-127 (3)127 (4)-57 (5)126 (6)-126 (7)-128 (8)68 1.9、完成下列二进制数的运算 (1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000÷1001 (5)1011 ∧~1011 (8)1011 ⊕1001 1001(6)1011 ∨1001(7) 1.10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符? 1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符? 1.12、简述Intel 80x86系列微处理器在指令集方面的发展。 1.13、什么是DOS和ROM-BIOS? 1.14、简述PC机最低1MB主存空间的使用情况。 1.15、罗列8086CPU的8个8位和16位通用寄存器,并说明各自的作用。 1.16、什么是标志,它有什么用途?状态标志和控制标志有什么区别?画出标志寄存器FLAGS,说明各个标志的位置和含义。

IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))

第五章 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。答:程序段如下: BEGIN: MOV AH, 1 ;从键盘输入一个字符的DOS调用 INT 21H CMP AL, ‘a’ ;输入字符<‘a’吗 JB STOP CMP AL, ‘z’ ;输入字符>‘z’吗 JA STOP SUB AL, 20H ;转换为大写字母,用AND AL, 1101 1111B也可 MOV DL, AL ;显示一个字符的DOS调用 MOV AH, 2 INT 21H JMP BEGIN STOP: RET 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。 答:程序段如下: BEGIN: MOV AH, 1 ;从键盘输入一个字符的DOS调用 INT 21H CMP AL, ‘a’ ;输入字符<‘a’吗 JB STOP CMP AL, ‘z’ ;输入字符>‘z’吗 JA STOP

DEC AL ;得到前导字符 MOV DL, AL ;准备显示三个字符 MOV CX, 3 DISPLAY: MOV AH, 2 ;显示一个字符的DOS调用 INT 21H INC DL LOOP DISPLAY STOP: RET 将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL和DL中。 答:程序段如下: DSEG SEGMENT STORE DB 4 DUP () DSEG ENDS ┇ BEGIN: MOV CL, 4 ;右移四次 MOV CH, 4 ;循环四次 LEA BX, STORE A10: MOV DX, AX AND DX, 0FH ;取AX的低四位 MOV [BX], DL ;低四位存入STORE中 INC BX SHR AX, CL ;右移四次 DEC CH

西安交通大学17年3月课程考试《汇编语言程序设计》作业考核试.

西安交通大学17年3月课程考试《汇编语言程序设计》作业考核试题 一、单选题(共30 道试题,共60 分。 1. 8086∕8088 CPU中可用作寄存器间址的寄存器是(。 A. BX、SI、DI B. BX、BP、SI、DI C. BX、IP、SI、DI D. BX,DX,SI,DI 正确答案: 2. 8位有符号二进制数能表示的最大十进制数是(。 A. 256 B. 255 C. 128 D. 127 正确答案: 3. 假定(DS=4000H,(DI=0100H,(401OOH=55H,(40101H=AAH,试问执行指令LEA BX,[DI]后,(BX= ( A. 0100H B. 55AAH C. AA55H

D. 4100H 正确答案: 4. A. B. C. D. 正确答案: 5. 4B的字长是(。 A. 8位 B. 16位 C. 32位 D. 64位 正确答案: 6. 若(AX=10101101B,为了使其内容变为01010010B,下列( 指令执行一次即可完成此操作 A. NOT指令 C. AND指令 D. XOR指令

正确答案: 7. 循环指令LOOPNZ终止循环的条件是(。 A. CX=0,且ZF=0 B. CX=0,或ZF=1 C. CX<>0,且ZF=0 D. CX<>0,或ZF=1 正确答案: 8. 8086∕8088微处理器可访问的I ∕O地址空间大小为(。 A. 1KB B. 64KB C. 1MB D. 16MB 正确答案: 9. 8位的微型计算机系统是以16位来表示地址,则该微机系统有(个地址空间。 A. 255 B. 65535 C. 65536 D. 1048576 正确答案:

80X86汇编语言程序设计教程(杨季文)课后习题答案

第二章答案 题2.1 8086/8088通用寄存器的通用性表现在何处?8个通用寄存器各自有何专门用途?哪些寄存器可作为存储器寻址方式的指针寄存器? 答:8086/8088通用寄存器的通用性表现在: 这些寄存器除了各自规定的专门用途外,他们均可以用于传送和暂存数据,可以保存算术逻辑运算中的操作数和运算结果; 8个通用寄存器的专门用途如下: AX 字乘法,字除法,字I/O BX 存储器指针 CX 串操作或循环控制中的计数器 DX 字乘法,字除法,间接I/O SI 存储器指针(串操作中的源指针) DI 存储器指针(串操作中的目的指针) BP 存储器指针(存取堆栈的指针) SP 堆栈指针 其中BX,SI,DI,BP可作为存储器寻址方式的指针寄存器 题2.2 从程序员的角度看,8086/8088有多少个可访问的16位寄存器?有多少个可访问的8位寄存器? 答:从程序员的角度看,8086/8088有14个可访问的16位寄存器;有8个可访问的8位寄存器; 题2.3 寄存器AX与寄存器AH和AL的关系如何?请写出如下程序片段中每条指令执行后寄存器 AX的内容: MOV AX,1234H MOV AL,98H MOV AH,76H ADD AL,81H SUB AL,35H ADD AL,AH ADC AH,AL ADD AX,0D2H SUB AX,0FFH

答: MOV AX,1234H AX=1234H MOV AL,98H AX=1298H MOV AH,76H AX=7698H ADD AL,81H AX=7619H SUB AL,35H AX=76E4H ADD AL,AH AX=765AH ADC AH,AL AX=D15AH ADD AX,0D2H AX=D22CH SUB AX,0FFH AX=D12DH 题2.4 8086/8088标志寄存器中定义了哪些标志?这些标志可分为哪两类?如何改变这些标志的状态? 答: 8086/8088标志寄存器中定义了9个标志,如下: CF: Carry Flag ZF: Zero Flag SF: Sign Flag OF: Overflow Flag PF: Parity Flag AF: Auxiliary Carry Flag DF: Direction Flag IF: Interrupt-enable Flag TF: Trap Flag 这些标志可分为两类,分别为: 1、运算结果标志; 2、状态控制标志; 采用指令SAHF可把AH中的指定位送至标志寄存器低8位SF、ZF、AF、PF、CF; 采用CLC可清除CF,置CF到0 采用STC可置CF到1 采用CLD可置DF到0 采用sTD可置DF到1 采用CLI可置IF到0 采用STI可置IF到1 另外,在某些指令执行过程中会改变部分标志的状态; 题2.5 请说说标志CF和标志OF的差异。

实验二:简单汇编语言程序设计与调试

深圳大学实验报告 课程名称微型计算机技术 项目名称实验二:简单汇编语言程序设计与调试 学院 专业 指导教师 报告人学号 实验时间 2015-11-01 提交时间 2015-11-15 教务处制

一、实验目的与要求 1.1掌握使用运算类指令编程及调试方法。 1.2掌握运算类指令对各个状态标志位的影响及其测试方法。 二、实验内容与方法 8086/8088指令系统提供了实现加、减、乘、除运算的基本指令,可对表2-1所示的数据类型进行算术运算。 表2-1 数据类型算术运算表 2.1二进制双精度加法运算 2.1.1 实验要求: 计算X+Y=Z,将结果Z存入某存储单元。 2.1.2 实验原理: 本实验程序是双精度(2个16位,既32位)运算,利用累加器AX,先求低16位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。由于低位和可能向高位有进位,因而高位字相加语句需要用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。 2.1.3 参考程序清单: STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS DATA SEGMENT XL DW ?;请在此处给X低位赋值 XH DW ?;请在此处给X高位赋值 YL DW ?;请在此处给Y低位赋值 YH DW ?;请在此处给Y高位赋值 ZL DW ? ZH DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV AX,XL ;X的值送AX ADD AX,YL ;X低位加Y低位 MOV ZL,AX ;存低位和 MOV AX,XH ;X高位送AX ADC AX,YH ;X高位加Y高位 MOV ZH,AX ;存高位和 CODE ENDS END START 2.2十进制数的BCD码减法运算 2.2.1 实验要求: 计算X-Y=Z,其中X,Y,Z为BCD码。 2.2.2 参考实验程序及流程图如下: STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS DATA SEGMENT X DW ? ;请在此处给X赋值 Y DW ? ;请在此处给Y赋值 Z DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,00H SAHF MOV CX,0002H MOV SI,OFFSET X MOV DI,OFFSET Z A1: MOV AL,[SI] SBB AL,[SI+02H] DAS

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