文档库 最新最全的文档下载
当前位置:文档库 › 汇编语言程序设计练习题及参考答案

汇编语言程序设计练习题及参考答案

一、单项选择题

从每小题的四个备选答案中,选出一个正确答案,并将正确答案的番号填人括号内。

1.用来存放下一条将要执行的指令地址的寄存器是 (B )

A.SP B.IP C.BP D.CS

2.要使串处理从低地址向高地址进行,应把标志位置为 (D )

A.IF=1 B.TF=0

C.DF=1 D.DF=0

3.使状态标志位CF清零的错误指令是 (C )

A.OR AX,AX B.SUB AX,AX

C.MOV CF,0 D.CLC

4.设SP=1110H,执行PUSH AX指令后,SP的内容为 (B )

A.SP=1112H B.SP=110EH

C.SP=1111H D.SP=110FH

5.汇编源程序出现语法错误的指令有 (D )

A.MOV [BX+SI],AL B. MOV AX,[BP+DI]

C.MOV DS,AX D. MOV CS,AX

6.下列串操作指令中,必须同时指明源串和目的串地址的指令是 (D )

A.STOSW B.LODSW

C.SCASW D.CMPSW

7.设BL中有一无符号数,实现把BL中的数乘以2,应选用的指令是 (B )

A.SHR BL,1 B.SHL BL,1

C.SAR BL,1 D.RCR BL,1

8.执行PUSH AX指令的正确步骤是 (A )

A.1.SP←SP-1,(SP)←AH B.1.(SP)←AH,SP←SP-1

2.SP←SP-1,(SP)←AL 2.(SP)←AL,SP←SP-1

C.1.SP←SP+1,(SP)←AH D.1.(SP)←AH,SP←SP+1

2.SP←SP+1,(SP)←AL 2.(SP)←AL,SP←SP+1

9.CF=1 时转移到目标地址的条件转移指令是 (B )

A.JNC B.JC C.JZ D.JS

10.在执行NEG指令时,对标志位CF有影响,其影响的规则是 ( C )

A.对正数求补时,CF=0 B.对负数求补时,CF=0

C.对非零数求补时,CF=1 D.对零求补时,CF=1

11.算术右移SAR和逻辑右移SHR两条指令执行后结果完全相同的情况是(A )

A.目的操作数最高位为0 B.目的操作数最高位为1

C.目的操作数为任意情况 D.无论什么情况都不可能相同

12.设AL=04H,BL=0F8H,执行IMUL BL指令后,结果是 ( D )

A.AX=0032H B.AX=00E0H

C.AX=03E0H D.AX=0FFE0H

13.指令的操作数中,允许出现表达式,例如BUF1与BUF2均为变量名,下面指令中语法正确的是 (D )

A.MOV AX,BUFl*BUF2

B.MOV AX,BUF1/BUF2

C.MOV AX,BUF1+ES:BUF2

D.MOV AX,BUF2-BUF1

14.下面指令中,操作数的寻址方式为寄存器间接寻址的指令是 (C )

A.INC WORD PTR [BX+SI]

B.INC CX,[SI+COUNT]

C.NEG BYTE PTR [BX]

D.ADD AX,B

15.NUM EQU 80H

DA DB 34H

AND DA,NUM

上述语句执行后,DA中的内容是 (D )

A.0B4H B.80H C.34H D.0

16.直接、间接、立即三种寻址方式指令的执行速度,由快至慢的排序为 (A ) A.立即、直接、间接 B.直接、间接、立即

C.直接、立即、间接 D.不一定

17.语句DA1 DB 2 DUP(3,5,7)汇编后,该语句可等同于的语句是 (D )

A.DA1 DB 3,5,7

B.DA1 DB 2,3,5,7

C.DA1 DB 3,5,7,2

D.DA1 DB 3,5,7,3,5,7

18. MOV AL,80H

MOV CL,2

SAR AL,CL

上述指令序列执行后,结果是 (D )

A.AL=40H B.AL=20H

C.AL=0C0H D.AL=0E0H

19.下面是实现将AL内容加1的压缩型BCD码加法程序段,其中正确的指令序列是 (A ) A.INC AL B.ADD AL,1

DAA DAS

C.ADD AL,1 D.STC

DAA AAA

20.现有数据存储如图所示:

30100H

30101H

30102H

30103H

设AL=01H,BX=0100H,DS=3000H执行换码指令XLAT后正确的结果是(B )

A.AL=20H B.AL=38H

C.AL=00H D.AL=41H

21.若定义DAT DW 'A',则(DAT)和(DAT+1)两个相邻的内存中存放的数据是 (B )

A.0041H B.4100H

C.xx41H D.41xxH

[注]选项C. 和D.中的XX表示任意数据。

22.假设VAR为变量,指令MOV BX,OFFSET VAR的寻址方式是 ( C )

A.直接寻址 B.间接寻址

C.立即寻址 D.存储器寻址

23.下列指令中,不影响标志位的指令是 ( A )

A.SUB BX,BX B.ROR AL,1

C.JNC Label D.INT n

24.假定(DS)=4000H,(DI)=0100H,(401OOH)=55H,(40101H)=AAH,试问执行指令LEA BX,[DI]后,(BX)= (C )

A.0100H B.55AAH

C.AA55H D.4100H

25.直接、间接、立即三种寻址方式指令的执行速度,由快至慢的排序为 (A ) A.直接、立即、间接 D.直接、间接、立即

C.立即、直接、间接 D.不一定

26.MOV AX,ES:[BX][SI]的源操作数的物理地址是 (B )

A.16×(DS)+(BX)+(SI) B.16×(ES)+(BX)+(SI)

C. 16×(SS)+(BX)+(SI) D.16×(CS)+(BX)+(SI)

27.已知:VAR DW 1,2,$+2,5,6

若汇编时VAR分配的偏移地址是0010H,则汇编后0014H单元的内容是: ( D )

A.6H B.14H C.5H D.16H

? 28. PC机采用向量中断方式处理8级外中断,中断号依次为08H~0FH,在RAM 0:002CH单元开始依次存放23H、FFH、00H和FOH四个字节,该向量对应的中断号和中断程序人口是 ( B ) A.0CH,23FF:00F0H B.0BH,F000:FF23H

C.0BH,00F0:23FFH D.0CH,F000:FF23H

29.下列80X86指令中,不合法的指令是 (D )

A.IN AX,21H B.MOV BL,AL

C.MOVSB D.SHL AX,6

30.执行下面的程序段后,(AX)= (B )

DATA SEGMENT

TAB DW 1,2,3,4,5,6

ENTRY EQU 3

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:CODE

MOV AX,DATA

MOV DS,AX

...

MOV BX,OFFSET TAB

ADD BX,ENTRY

MOV AX,[BX]

...

A.0003H B.0300H

C.0400H D.0004H

31.下面指令中影响状态位CF的指令是 ( D )

A.INC AX B.DEC AX

C.NOT AX D.NEG AX

32.判当CX=0时,转ZERO执行的错误指令是 (D )

A.CMP CX,0 B.MOV AX,CX

JZ ZERO JZ ZERO

C.OR CX,CX D. JCXZ ZERO

JZ ZERO

33.执行1号DOS系统功能调用后,从键盘输入的字符应存放在 (A ) A.AL中 B.BL中

C.CL中 D.DL中

34.设数据定义如下:

ARRAY DW 1,2,3

执行指令ADD SI,TYPE ARRAY相当于完成下面同等功能的指令是 (B ) A.ADD SI,1 B.ADD SI,2

C.ADD SI,3 D.ADD SI,0

35.设数据定义如下:

BUF DW 100 DUP(?)

执行指令:MOV CX,LENGTH BUF相当于完成下面同等功能的指令是 (D ) A.MOV CX,00C8H B. MOV CX,0200H

C.MOV CX,0064H D.MOV CX,0100H

36.完成对字单元BUF的内容加1运算,下面错误的指令是 (C )

A.MOV BX,BUF B.MOV BX,OFFSET BUF

INC BX INC WORD PTR [BX]

MOV BUF,BX

C.MOV BX,BUF D.MOV BX,0

INC WORD PTR [BX] INC WORD PTR BUF[BX]

37.完成对寄存器BX的内容求补运算,下面错误的指令是 (D )

A.NEG BX B.NOT BX

INC BX

C.XOR BX,0FFFFH D.MOV AX,0

INC BX SUB AX,BX

38.判当AX的内容为负数时,转MINUS执行,下面错误的指令是 ( D ) A.NOT AX B.TEST AX,8000H

JNS MINUS JNZ MINUS

C.SHL AX,1 D.OR AX,AX

JC MINUS JZ MINUS

39.下面指令序列执行后,正确的结果是 ( D )

MOV AL,0FEH

ADD AL,AL

ADC Al,AL

A.AL=0F8H B.AL=0F8H

CF=1 CF=0

C.AL=0F9H D.AL=0F9H

CF=0 CF=1

40.现有数据存储如图所示:

30100H

30101H

30102H

30103H

设AL=01H,BX=0100H,DS=3000H执行换码指令XLAT后正确的结果是( D )

A.AL=00H B.AL=4OH

C.AL=01H D.AL=79H

41、一个8位二进制数的补码为1000 1010,其原码的16进制形式为C

A.-0AH B.-75H C.-76H D.8AH

42、1号DOS功能调用时,欲将得到的数字的ASCII码转换为该数的实际数值时,可使用A指令来

实现。

A.AND B.OR C. XOR D.NOT

43、设DS=8225H,DI=5678H,指令MOV AX,[DI]源操作数的物理地址是D

A.8D89DH B.86198H C.8B698H D.878C8H

44、指令JG LAB 是指当标志满足_B__条件时转移到标号LAB处执行

A.((SF XOR OF) OR ZF)=1 B.(SF XOR OF)=0 AND ZF=0

C. (SF XOR OF)=0 OR ZF=1 D.CF = 1

45、8086汇编语言中,BCD码的运算是借用二进制数的运算指令并加以调整来实现的。其中非压缩型BCD码减法的调整指令为_C__

A.AAA B.DAA C. AAS D. DAS

46、除法指令中,对于双字除以字运算,商在_A__寄存器中。

A.AL B.AH C. AX D. DX

47、MOV AX,COUNT[SI]的源操作数在_B__

A.CS段B.DS段C. SS段D. ES段

48、汇编程序至少必须有一个_A__

A.CS段B.DS段C. ES段D. SS段

49、LOOPNE指令当满足_C__时执行循环操作。

A.ZF=1且CX=0 B.ZF=1且CX≠0

C.ZF=0且CX≠0 D.ZF=0且CX=0

50、如果一标号与访问它的JMP指令之间的相对位移量在-128~+127字节的范围内,则可将该标号说明为_C__转移

A.FAR B.NEAR C. SHORT D.MIDDLE

51、 10号功能调用可从键盘上输入一串字符,调用时_B___应指向一输入缓冲区。

A.DS:AX B.DS:DX C.ES:AX D .ES:DX

52、串操作指令中,目的串通过_D__两个寄存器寻址:

A.DS,SI B.DS,DI C. ES,SI D. ES, DI

53、将DX的内容除以2,正确的指令是C___。

A.DIV 2 B.DIV DX,2 C.SAR DX,1 D.SHL DX,1

54、在END语句中的标号名称能提供_B__寄存器的数值,作为程序执行时的起始地址。

A.DS:SI B.CS:IP C.ES:DI D.SS:SP

55、段内调用时CALL指令将_B__保存进栈,以供过程返回时使用。

A.CS B.IP C.CS:IP D.SS:SP

56、执行后使BX=0的同时也使CF=0,OF=0的指令是(A)

A.XOR BX,BX B.OR BX,BX

C.AND BX,BX D.CMP BX,BX

57、在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是(C)

A.DAA校正指令的功能已自动加在AH中

B.进位值在AF中,校正后根据AF内容再加在AH中

C.进位值在CF中,校正后根据CF内容再加在AH中

D.进位值在AL最高位上,校正后根据AL最高位内容再加在AH中

58、比较两个带符号的数A、B,当A=B时程序转移,测试的条件为(C)

A.ZF=1B.ZF=0

C.SF=1D.SF=0

59. 设物理地址(21000H)=20H,(21001H)=30H,(21002H)=40H。如从地址21001H中取出一个字的内容是(D )

A.2030H

B.3040H

C.3020H

D.4030H

60.没有语法错误的输入指令是(A )

A.IN AL,30H

B.IN 30H,AL

C.IN DX,AL

D.IN AL,[BX]

61.汇编语言源程序,可以是(D )

A.可以直接由机器执行

B.必须由编译程序生成目标程序才能执行

C.必须由解释程序生成目标程序才能执行

D.必须由汇编程序汇编成目标程序才能执行

62.设NUM1 EQU 100

NUM2= 64H

下面指令执行后,使BL中为全1的指令是(A )

A.MOV BL,NUM1 EQ NUM2

B.MOV BL,NUM1 LT NUM2

C.MOV BL,NUM1 NE NUM2

D.MOV BL,NUM1 GT NUM2

63. 循环指令LOOPNZ终止循环的条件是(B )。

A、CX=0,且ZF=0

B、CX=0,或ZF=1

C、CX10,且ZF=0

D、CX10,或ZF=1

64.在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是(D )。

A、WORD

B、PAGE

C、BYTE

D、PARA

65.BUF DW 10H DUP(3 DUP(2,10H),3,5)

上述语句汇编后,为变量BUF分配的存储单元字节数是(A )。

A、80H

B、100H

C、124

D、192

二、填空题

1.Intel 8086/8088CPU共有20 根地址线,可直接寻址220字节存储空间。2.ADD是一条双操作数指令,即一条指令有源操作数和目的操作数。例如指令 ADD OPR1,OPR2中的源操作数是OPR2,目的操作数是OPR1 。

3.8086/8088的存储器是分段的,因此存储单元的物理地址是由段地址和偏移地址组合而成的。

4.PSW是一个八位的寄存器。

5.用DW 1234H语句定义的一个字,如改用DB定义时,其语句是DB 34H,12H 。

6.执行ADD AX,BX指令后产生溢出则转移到ERROR处执行。那么在ADD指令后,如AX,BX中是带符号数时,应选用的条件转移指令是 JO ,如是无符号数时,应选用的条件转移指令是JC。

7. 8086/8088CPU允许的最大存储空间为 1M ,其地址编号从00000 H到FFFFF H。8.汇编语言是一种面向机器的语言。完成将汇编语言源程序翻译成机器语言目的程序的翻译程序称汇编程序。

9.8086/8088的存储器是分段的,因此存储单元的物理地址是由段地址和偏移地址组合而成的。

10.标号和变量(名字)均有三种属性,它们是段、偏移和类型属性。11.判断无符号数运算是否溢出应根据CF 标志位;而判断有符号数运算是否溢出应根

据OF 标志位。

12.在16位存储单元中能存储的最大无符号数为65535,能表示的有符号数的范围是

H到103E7 H。-216~216-1

13.若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOV AX,(SI+COUNT)中,源操作数的有效地址EA为_20A8H_______,其物理地址为_11488H_______。

14.当标志位_CF_______=1时表示无符号数运算产生溢出,而当标志位_OF_______=1是表示带符号数运算产生溢出。

三、程序分析题

1.MOV AX,0F0FH

AND AX,0FFFH

OR AX,0F0FH

XOR AX,00FFH

上述程序段运行后,AX= 0FF0H,CF= 0

2.MOV AX,BX

NEG AX

ADD AX,BX

(注:BX=0101H)

问:该程序段执行后,AX= 0000H,CF= 1。

3.BUF DW 0000H

LEA BX,BUF

STC ;进位位置1

RCR WORD PTR [BX],1

MOV CL,3

SAR WORD PTR [BX],CL ;算术右移

问:该程序段执行后:存储单元BUF的内容为F000H 。

4.BLOCK DB 20H,1FH,08H,81H,0FFFH……

RESULT DB ?

START:LEA SI,BLOCK

MOV CX,[SI]

INC SI

MOV AL,[SI]

LOP1: CMP AL,[SI+1]

JNG NEXT

MOV AL,[SI+1]

NEXT: INC SI

LOOP LOP1

MOV RESULT,AL

HLT

问:(1)该程序完成的功能是:找出存储单元block中的最小值。

(2)该程序的循环次数是:20H。

5.CODE SEGMENT

ASSUME CS:CODE

START:MOV CX,1

MOV BL,2

AGAIN:MOV AL,BL

INC BL

MUL BL

ADD CX,AX

CMP AX,002AH

JB AGAIN

MOV AH,4CH

INT 21H

CODE ENDS

END START

问:(1)该程序所完成的功能可用算术表达式表示为sum=1+2*3+3*4+4*5+5*6+6*7。

(2)该程序完成后CX= 6F。

6、ARY DW 10 DUP(?)

MOV AL,TYPE ARY

MOV BL,LENGTH ARY

MOV CL,SIZE ARY

上述MOV指令序列执行后的结果是什么?

Mov al,2

Mov bl,0Ah

Mov cl,14H

7、试分析下面程序段的功能是什么?

CMP DL,‘A’

JB DIS

CMP DL,‘Z’

JNA DIS

LETTER:

ADD DL,20H

DIS:

MOV AH,2

INT 21H

8、下列指令执行后,AL的内容是什么?

MOV AL,53H

ADD AL,69H

DAA

DAA

88H

9.DS:5000H,CS=6000H,BX=1278H,SI=345FH,(546D7H)=00,(546D8H)=80H。分别执行下述两条段内转移指令后,实际转移的目标物理地址各是多少?

(1)JMP BX

(2)JMP [BX+S1]

10.数据定义语句ARRAR DW 1,2,$+4,3,4,$+5如汇编时ARRAY分配的偏移地址为000AH,试指出ARRAY数组数据项$+4和$+5中的$分别是多少?000E,0014

11.试按下列要求在数据段中依次书写各数据定义语句:

(1)DA1为首字节的连续存储单元中存放20H个重复的数据序列:2,3,10个4,一个7

Da1 db 20h dup(2,3,10 dup(4),7)

(2)DA2为字符串变量,用字变量(DW)设置一字符串:'STUDENTS'(按此顺序存放在各单元中) Da2 dw ‘st’,’ud’,’en’,’ts’

(3)用等值语句给符号COUNT赋值以DA1为首址的数据区共占有的字节数,此等值语句必须放

在最后一语句。

Count equ $-da1

12. MOV DL,AL

NOT DL

TEST DL,04H

JE NEXT

NEXT:…

若上述程序段执行时产生分支,说明AL中的数第几位一定为1?程序段执行后CF是多少?

3

13.MOV BL,64H

MOV CL,03H

XOR AX,AX

AGAIN:ADD AL,BL

ADC AH,0

DEC CL

JNZ AGAIN

问:(1)该程序段完成的功能是:64h*3放入ax中

(2)AX=_12C_______。

14. AT DB 0AH,0BH,0CH,0DH,0EH,0FH,00H

MOV BX,0

LOP:MOV DL,AT[BX]

CMP DL,0

JZ DONE

ADD DL,37H

MOV AH,2

INT 21H

INC BX

JMP LOP

DONE:……

①上述程序段执行后在屏幕上显示的内容依次是:ABCDEF

②执行后BX=_6__________。

15.DATA SEGMENT

S9 DB0,1,2,3,4,5,6,7,8,9

DATA ENDS

LEA SI,S9

LEA,DI,S9+1

MOV CX,5

LOP: MOV AL,[SI]

XCHG AL,[DI]

MOV [SI],AL

ADD SI,2

ADD DI,2

LOOP LOP

上述程序段运行后,S9开始的10个字节存储单元内容是什么

1,0,3,2,5,4,7,6,9,8

四、程序填空题

l、下面子程序完成将调用程序提供的一组字符串中的大写字母改为小写字母。请将程序补充完整。

;子程序名:BEXS

;功能:将字符串中的大写字母转换为小写字母

;人口参数:BX为字符串首地址指针,CX为字符串长度

;出口参数:转换后的小写字母存于原单元,并显示输出。

;使用的寄存器:AX,BX,CX,DX

PUBLIC BEXC

CODE SEGMENT PARA PUBLIC‘CODE’

ASSUME CS:CODE

BEXS PROC FAR

PUSH AX ;寄存器保护

PUSH DX

LOP1:MOV AL,[bx] (1) ;取一字符

CMP AL,‘A’;判小于‘A’?

J b(2) LOP2 ;若小于‘A’时转LOP2

CMP AL,‘Z’;判大于‘Z’?

J a(3) LOP2 ;若大于‘Z’时转LOP2

ADD Al,20h (4)

;当为大写字母时,转为小写字母MOV [BX],AL ;存回原单元

MOV DL,AL ;显示输出

MOV AH,2

INT 21H

LOP2: INC BX ;修改地址

LOOP LOPl ;未转换它,继续循环

POP DX

POP AX

RET

BEXS ENDP

CODE ENDS

2.下面程序利用DOS系统功能调用,完成将键盘输入的小写字母转换成大写字母后输出显示,直到输入‘$’字符时结束。请将程序补充完整。

CODE SEGMENT

ASSUME CS:CODE

DISPLAY PROC NEAR

BEGIN:MOV AH,01H

INT 21H

Cmp al,’$’(1)

JZ STOP

CMP AL ‘a’

JB STOP

CMP AL,‘z’

JA STOP

sub al,20h(2)

mov dl,al(3)

MOV AH,02H

INT 21H

JMP BEGIN

STOP:RET

DISPLAY ENDP

CODE ENDS

3.下面程序段是实现从键盘输入十个一位10进制数后累加。最后累加和以非压缩BCD码形式存放在AH(高位)和AL(低位)中。试把程序段中所空缺的指令填在横线上。

XOR BX,BX

Mov cx,10

LOP: MOV AH,01H ;键盘字符输入

INT 21H

MOV AH,BH

ADD AL,BL

Adc ah,bh

MOV BX,AX

LOOP LOP

4.下面是一个用地址表法实现多路分支的程序段。在BRCHTAB处定义了一个多种分支的地址表,程序根据ZYBZ单元中的符号,找到地址表中的对应地址实现转移。请将程序段补充完整。

BRCHTAB DW ADDR0

DW ADDR1

DW ADDR2

DW ADDR3

ZYBZ DW 2H

START: LEA SI,BRCHTAB

MOV AX,ZYBZ

Mov si,0

ADD SI,AX

Mov bx,BRCHTAB[si]

JMP BX

5.在NUMW单元存放有一个0-65535范围内的整数,将该数除以500,商和余数分别存入QU1和REM单元,请在空行处各填上一条指令完善该程序。

MOV AX,NUMW

_mov bx,500____________

XOR DX,DX

DIV BX

MOV QUI,AX

_mov rem,dx____________

6. NUM和NUM+1单元分别存有一个8位带符号数,下面程序段将两数中大者NUM单元,小者

NUM+1单元,请在方框处各填一条指令补充完整。

MOV AL,NUM

CMP AL,NUM+1

; Jl DONE

MOV NUM,AL

DONE:……?

五、编制程序题

1、编写一个过程求6!,结果放在DX:AX中。

data segment

n db 6

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov ax,6

mov cx,ax

next:

dec cx

cmp cx,0

jz exit

mul cx

jmp next

exit:

mov ah,4ch

int 21h

code ends

end start

2、编写一个加密程序,实现将数据段中YW开始的6个字节原文加密存入MW开始的6个字节中,设’’对应的密码为’’。如原文YW为’’,则加密后MW中为’’。

data segment

table2 db ''

yuanwen db 'yw:',0dh,0ah,'$'

yw db ''

mw db 'mw:','$'

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

lea dx,yuanwen

mov ah,09h

int 21h

lea dx,mw

mov ah,09h

int 21h

lea bx,table2

mov si,0

next:

mov al,yw[si]

and al,0fh

xlat

mov dl,al

mov ah,02h

int 21h

inc si

cmp si,6

jb next

mov ah,4ch

int 21h

code ends

end start

3、试编写一程序段,在CHAR为首址的26个字节单元中依次存放字母‘A’∽‘Z’data segment

char db 26 dup(?)

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

lea si,char

mov al,'A'

next:

mov [si],al

mov dl,[si]

mov ah,02h

int 21h

inc si

inc al

cmp si,26

jb next

mov ah,4ch

int 21h

code ends

end start

4、A1单元开始定义了一长度为N的字符串,找出其中所有的小写字母并存放到以A2单元开始的存储区中。统计出小写字母的个数,存放到SL单元中。请编一完整的源程序。数据段如下:

DATA SEGMENT

A1 DB ‘……’

N EQU $ -A1

A2 DB N DUP(?)

SL DB ?

DATA ENDS

data segment

a1 db 'a24d'

n equ $-a1

a2 db n dup(?)

sl db ?

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

lea bx,a1

lea si,a2

mov al,0

mov cx,n

next:

mov dl,[bx]

cmp dl,'a'

jb count

cmp dl,'z'

ja count

mov [si],dl

inc al

inc si

count:

inc bx

loop next

mov sl,al

mov ah,4ch

int 21h

code ends

end start

5.编写一完整源程序,将DB1中的二进制数按位倒排送DB2中,即DB1第0位送DB2第7位,DB1第1位送DB2第6位,依次类推。

DA TA SEGMENT

DB1 DB XX;任一字节数

DB2 DB?

DA TA ENDS

data segment

db1 db 21h

db2 db ?

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov al,db1

mov cx,0

next:

clc

shl al,1

rcr dl,1

inc cx

cmp cx,7

jbe next

mov db2,dl

mov ah,4ch

int 21h

code ends

end start

6. 在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首址的数据区中。

DA TA SEGMENT

BUF1 DW-56,24,54,-1,89,-8……

BUF2 DW45,-23,124,345,-265,……

SUM DW10DUP(0)

DA TA ENDS

data segment

buf1 dw -56,24,54,-1,89,-8,43,1,67,-53

buf2 dw 45,-23,124,345,-265,21,34,-3,12,-22

sum dw 10 dup(0)

data ends

code segment

assume cs:code,ds:data start:

mov ax,data

mov ds,ax

mov cx,10

lea si,buf1

lea di,buf2

lea bx,sum

next:

mov ax,[si]

mov dx,[di]

cmp ax,0

jl n1

n: cmp dx,0

jl n2

jmp continue

n1: neg ax

jmp n

n2: neg dx

continue:

add ax,dx

mov [bx],ax

add si,2

add di,2

add bx,2

loop next

code ends

end start

汇编语言程序设计题目以及答案

一、单项选择题(每小题1分,共20分) 1、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是(A) A、85B92H B、86192H C、BB690H D、12169H 2、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(B) A、AX,BX,CX,DX B、BX,BP,SI,DI C、SP,IP,BP,DX D、CS,DS,ES,SS 3、循环指令LOOPNZ终止循环的条件是(B)。 A、CX=0,且ZF=0 B、CX=0,或ZF=1 C、CX10,且ZF=0 D、CX10,或ZF=1 4、对寄存器AX的内容乘以4的正确指令序列是(B)。 A、SHR AX,1 /SHR AX,1 B、SHL AX,1/ SHL,AX,1 C、ROL AX,1 /ROL AX,1 D、RCR AX,1/ RCR AX,1 5、执行INC指令除对SF、ZF有影响外,还要影响的标志位是(A)。 A、OF,AF,PF B、OF,AF,CF C、OF,PF,CF D、AF,PF,CF 6、设DH=10H,执行NEG DH指令后,正确的结果是(D)。 A、DH=10H CF=1 B、DH=0F0H CF=0 C、DH=10H CF=0 D、DH=0F0H CF=1 7、下列传送指令中有语法错误的是(A)。 A、MOV CS,AX B、MOV DS,AX C、MOV SS,AX D、MOV ES,AX 8、下面指令执行后,改变AL寄存器内容的指令是(D)。 A、TEST AL,02H B、OR AL,AL C、CMP AL,BL D、AND AL,BL 9、执行除法指令后,影响的标志位是(D)。 A、CF,OF

汇编语言程序的设计试卷与答案

汇编语言程序设计试卷 一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分) 1.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。 ① 无符号十进制数136 ② 带符号十进制数-120 ③ 压缩型BCD码十进制数88 ④ 8位二进制数-8的补码表示 2.指令指针寄存器是()。 ① IP ② SP ③ BP ④ PSW 3.当执行指令ADD AX,BX后,若AX的内容为2BA0H, 设置的奇偶标志位PF=1,下面的叙述正确的是()。 ① 表示结果中含1的个数为偶数 ② 表示结果中含1的个数为奇数 ③ 表示该数为偶数 ④ 表示结果中低八位含1的个数为偶数 4.完成将累加器AL清零,并使进位标志CF清零, 下面错误的指令是()。 ① MOV AL,00H ② AND AL,00H

③ XOR AL,AL ④ SUB AL,AL 5.下列指令执行后总是使CF=0,OF=0的是()。 ① AND ② NEG ③ NOT ④ INC 6.完成同指令XCHG AX,BX相同功能的指令或指令序列是()。 ① MOV AX,BX ② MOV BX,AX ③ PUSH AX POP BX ④ MOV CX,AX MOV AX,BX MOV BX,CX 7.设AH=0,AL=06H,BL=09H,执行指令 ADD AL,BL AAA 之后,其结果应是()。 ① AH=01,AL=05 ② AH=1 AL=15 ③ AH=0 AL=0FH ④ AH=0 AL=05 8.设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为

汇编语言程序设计题目以及答案

汇编语言程序设计题目以及答案[P1] 汇编语言程序设计题目以及答案 汇编语言是一种底层计算机语言,它直接使用机器指令来编写程序。本文将介绍一些汇编语言程序设计的题目,并提供相应的答案。通过 这些题目和答案的学习,读者可以更好地理解和掌握汇编语言程序设 计的基本概念和技巧。 [题目一] 计算两个数的和 要求:编写汇编程序,计算两个给定的整数的和,并将结果存储在 指定的内存位置中。 答案: ```assembly section .data num1 dd 10 ; 第一个整数 num2 dd 20 ; 第二个整数 result dd 0 ; 结果 section .text global _start _start: mov eax, [num1] ; 将num1值存入寄存器eax

add eax, [num2] ; 将num2值与eax寄存器中的值相加 mov [result], eax ; 将结果存储到result变量 mov eax, 1 ; 准备执行系统调用 mov ebx, 1 ; 文件描述符:标准输出 mov ecx, result ; 输出的数据 mov edx, 4 ; 数据长度 int 0x80 ; 执行系统调用 mov eax, 1 ; 准备执行系统调用 xor ebx, ebx ; 正常退出 int 0x80 ; 执行系统调用 ``` [题目二] 字符串反转 要求:编写汇编程序,将一个给定的字符串反转,并将结果存储在指定的内存位置中。 答案: ```assembly section .data str db 'Hello', 0 ; 待反转的字符串

汇编语言练习题及习题答案

选择 1、用户为了解决自己的问题,用汇编语言所编写的程序,称为___________。 A 、目标程序B、源程序C、可执行程序D、汇编程序 2、无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是___________。 A、ADD BH,01H B、OR BH,01H C、XOR BH,01H D、TEST BH,01H 3、设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 4、设AX=1000H NEG AX NOT AX 执行上述指令后,正确的结果是___________。 A、AX=1001H B、AX=0FFFH C、AX=1000H D、AX=0111H 5、CBW指令的功能是___________。 A、把源操作数的符号位扩展到目的操作数中 B、把AL中的符号位扩展到AH中 C、把AH中的符号位扩展到AL中 D、把AX中的符号位扩展到DX中 6、AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是 A、指令XOR AX,AX执行后,AX内容不变,但设置了标志位 B、指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C、指令AND AX,OFH执行后,分离出AL低四位 D、NOT AX,执行后,将AX清0 7、执行下列指令序列后,正确的结果是___________。 MOV AL,81H ADD AL,AL ADC AL,AL A、AL=05H B、AL=204H C、AL=04H D、AL=205H 4、TEST DL,55H JE NEXT …. NEXT:…… 上述程序段,执行JE指令时能产生转移的情况是。 A、DL>55H B、DL<55H C、DL=55H D、DL中第0、2、4、6位均为0 5、设CL=05H,要获得CL=0AH,可选用的指令是。 A、XOR CL,0FH B、NOT CL C、OR CL,0AH D、AND CL,0FH 填空

《汇编语言程序设计》期末复习题及答案_

《汇编语言程序设计》期末复习题及答案 一、选择(30题) 1.下列是8位带符号二进制数的补码,其中最大的是( B )。 A、10001000 B、00000001 C、00000000 D、11111111 2.在一段汇编语言程序中多次调用另一段程序,用宏指令比用子程序实现。 ( C ) A、占内存空间小,但速度慢 B、占内存空间相同,速度快 C、占内存空间大,但速度快 D、占内存空间相同,速度慢 3.数据定义为:EE DB 3,4 CC DW 3456H,6789H 执行指令“MOV CX,WORD PTR EE+1”后,(CX)= ( B ) A、0304H B、5604H C、3404H D、3456H 4.有如下指令序列: MOV AL,95H MOV CL,2 SAR AL,CL 上述指令序列执行后,AL的内容是( D ) A、05H B、25H C、24H D、0E5H 5.设A=18610,B=2738,C=0BB16,把这三个数看成无符号数,则它们之间的关系是( D )。 A、A>B>C B、 A

《汇编语言》练习题库参考答案

华中师范大学网络教育学院 《汇编语言程序设计》练习测试题库参考答案 一、选择题答案: 1.B 2.C 3.B 4.C 5.C 6.C 7.A 8.A 9.D 10.C 11.B 12.A 13.C 14.B 15.A 16.D 17.A 18.A 19.D 20.A 21.A 22.D 23.C 24.B 25.C 26.D 27.B 28.D 29.A 30.A 31.D 32.A 33.D 34.D 35.D 36.D 37.B 38.C 39.A

41.A 42.C 43.B 44.B 45.C 46.D 47.D 48.D 49.A 50.A 51.D 52.B 53.C 54.A 55.B 56.C 57.A 58.C 59.D 60.C 61.A 62.D 63.C 64.C 65.D 66.A 67.B 68.C 69.B 70.D 71.D 72.A 73.D 74.C 75.D 76.C 77.C 78.D 79.D 80.B 二、判断题答案: 1. ×

3. √ 4. √ 5. × 6. √ 7. × 8. × 9. × 10. × 11. √ 12.√ 13. × 14. √ 15. √ 16. √ 17. × 18. × 19. √ 20. √ 21. √ 22. √ 23. √ 24. × 25. √ 26. × 27. √ 28 √ 29. √ 30. √ 31. √ 32. √ 33. √ 34. √ 35. √ 36. √ 37. √ 38. √ 39. × 40. √ 41. × 42. √ 三、填空题答案:

汇编语言程序设计习题及答案

汇编语言程序设计习题及答案 汇编语言程序设计习题及答案 汇编语言是一种底层的计算机语言,它直接操作计算机的硬件资源。虽然在现 代计算机编程中,高级语言如C、Java等更为常见,但了解汇编语言的基本原 理和编程技巧对于理解计算机底层工作原理和进行性能优化非常重要。本文将 介绍一些汇编语言程序设计的习题及其答案,帮助读者巩固和提升汇编语言编 程能力。 一、基础习题 1. 编写一个汇编程序,将存储器中的某个字节的值加1,并将结果存回原位置。答案: ```assembly MOV AL, [地址] INC AL MOV [地址], AL ``` 2. 编写一个汇编程序,计算存储器中一个数组的和,并将结果存放在指定的寄 存器中。 答案: ```assembly MOV CX, 数组长度 MOV BX, 数组首地址 MOV AX, 0

LOOP_START: ADD AX, [BX] ADD BX, 2 LOOP LOOP_START ``` 二、进阶习题 1. 编写一个汇编程序,实现字符串的逆序输出。答案: ```assembly MOV SI, 字符串首地址 MOV DI, 字符串尾地址 MOV CX, 字符串长度 DEC CX REVERSE: MOV AL, [SI] MOV AH, [DI] MOV [DI], AL MOV [SI], AH INC SI DEC DI LOOP REVERSE ```

2. 编写一个汇编程序,实现两个16位无符号整数的相乘,并将结果存放在指定的寄存器中。 答案: ```assembly MOV AX, 第一个数 MOV BX, 第二个数 MUL BX ``` 三、挑战习题 1. 编写一个汇编程序,实现一个简单的计算器,支持加法、减法、乘法和除法运算。 答案: ```assembly READ_INPUT: ; 读取用户输入 ; ... PARSE_INPUT: ; 解析用户输入,获取操作数和运算符 ; ... CALCULATE: ; 根据运算符进行相应的计算 ; ...

汇编语言程序设计练习题及参考答案

一、单项选择题 从每小题的四个备选答案中,选出一个正确答案,并将正确答案的番号填人括号内。 1.用来存放下一条将要执行的指令地址的寄存器是 (B ) A.SP B.IP C.BP D.CS 2.要使串处理从低地址向高地址进行,应把标志位置为 (D ) A.IF=1 B.TF=0 C.DF=1 D.DF=0 3.使状态标志位CF清零的错误指令是 (C ) A.OR AX,AX B.SUB AX,AX C.MOV CF,0 D.CLC 4.设SP=1110H,执行PUSH AX指令后,SP的内容为 (B ) A.SP=1112H B.SP=110EH C.SP=1111H D.SP=110FH 5.汇编源程序出现语法错误的指令有 (D ) A.MOV [BX+SI],AL B. MOV AX,[BP+DI] C.MOV DS,AX D. MOV CS,AX 6.下列串操作指令中,必须同时指明源串和目的串地址的指令是 (D ) A.STOSW B.LODSW C.SCASW D.CMPSW 7.设BL中有一无符号数,实现把BL中的数乘以2,应选用的指令是 (B ) A.SHR BL,1 B.SHL BL,1 C.SAR BL,1 D.RCR BL,1 8.执行PUSH AX指令的正确步骤是 (A ) A.1.SP←SP-1,(SP)←AH B.1.(SP)←AH,SP←SP-1 2.SP←SP-1,(SP)←AL 2.(SP)←AL,SP←SP-1 C.1.SP←SP+1,(SP)←AH D.1.(SP)←AH,SP←SP+1 2.SP←SP+1,(SP)←AL 2.(SP)←AL,SP←SP+1 9.CF=1 时转移到目标地址的条件转移指令是 (B ) A.JNC B.JC C.JZ D.JS 10.在执行NEG指令时,对标志位CF有影响,其影响的规则是 ( C ) A.对正数求补时,CF=0 B.对负数求补时,CF=0 C.对非零数求补时,CF=1 D.对零求补时,CF=1 11.算术右移SAR和逻辑右移SHR两条指令执行后结果完全相同的情况是(A ) A.目的操作数最高位为0 B.目的操作数最高位为1 C.目的操作数为任意情况 D.无论什么情况都不可能相同 12.设AL=04H,BL=0F8H,执行IMUL BL指令后,结果是 ( D ) A.AX=0032H B.AX=00E0H C.AX=03E0H D.AX=0FFE0H 13.指令的操作数中,允许出现表达式,例如BUF1与BUF2均为变量名,下面指令中语法正确的是 (D ) A.MOV AX,BUFl*BUF2 B.MOV AX,BUF1/BUF2 C.MOV AX,BUF1+ES:BUF2

汇编语言程序设计试题及答案

《汇编语言程序设计》试题 专业姓名成绩 一、单项选择题(每1分,共15分). 1将下列二进制数0111,1111,1111 转换为16进制数和10进制数是() A.07FFH 3021D B. 6FEH 1021D C. 07FFH 2012D D. 07FFH 2047D 2. 在1BM Pc机的IN和OUT 指令中,I/o端口号通常是由Dx寄存器来提供的,但有时也可以在 指令中用一个字节来表示端口号。试问可以直接由指令指定的I/o端口号有多少个?( ) A. 127D B.255D C. 256D D.128D 3. 设MYDAT是一个字变量,下列指令中,错误的是() A.MOV BX,10100B B.MOV DS,AX C.ADD BX,[10100H] D.MOV BX,MYDAT[SI] 4.设有关寄存器及存储单元的内容如下:(DS)=2000H,(BX)=0100H,(SI)=0002H, (20100)=12H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(20202)=0B7H,(21203)=65H,试指出:MOV AX,1100h[BX]指令执行后,AX寄存器内是() A.5678H B.4C2AH C.2A4CH D.7856H 5.一台微型计算机的字长为16位,如果采用字节编址,那么它可以访问的最大存储空间是多少字节 ( ),试用16进制数表示该机的地址范围() A.1M 0~FFFFFH B.64K 0~FFFFH C.128K 0~FFFFH D.128K –FFH~FFH 6. 如果在一个程序段开始执行之前,(cs)=0A7F0H,(1P)=2B40H,试问该程序段的第一个字的物 理地址是() A.BAA40H B.AAB40H C.AAA40H D.0D603H 7.下列指令哪个是错误的(设OP1,OP2 是已经用DB定义的变量名)( ) A.CMP BL,OP1 B.MOV [BX],111001B C. INC OP2 D.SAR AX,CL 8.假定(DX)=10111001B,(CL)=05,(CF)=1试确定:RCL DL,CL 指令执行后, DX中的值是() A.00CEH B.009DH C.00B9H D.003BH 9. 有符号定义语句如下: BUFF DB 1,2,3,‘123’ EBUFF DB 0 L EQU EBUFF - BUFF 问L的值为多少( ) A.6D B.7D C.3D D.5D. 10. IBMPC机中下列那些寄存器可以用来存储存储器地址() A、BX,BP,SP,CX B、AX,SI,DI,DX C、BX,SI,DI,SP D、DX,SI,DI,SP 11.下列指令中正确的是() A.MOV [BX],[SI] B.MOV AX,[SI][DI] C.MOV BX,OFFSET NAME[SI] D.MOV BYTE PTR [100],100

计算机组成原理与汇编语言程序设计课后习题及解答(详解)

计算机组成原理与汇编语言程序设计课后习题及解答 徐, 第1章习题一 1.什么是程序存储工作方式? 答:计算机的工作方式——存储程序工作方式。即事先编写程序,再由计算机把这些信息存储起来,然后连续地、快速地执行程序,从而完成各种运算过程。 2.采用数字化方法表示信息有哪些优点? 用数字化方法表示信息的优点: (1)抗干扰能力强, 可靠性高。 (2)依靠多位数字的组合,在表示数值时可获得很宽的表示范围以及很高的精度。 (3)数字化的信息可以存储、信息传送也比较容易实现。 (4)可表示的信息类型与范围及其广泛,几乎没有限制。 (5)能用逻辑代数等数字逻辑技术进行信息处理,这就形成了计算机硬件设计的基础。 3.如果有7×9点阵显示出字符A的图像,请用9个七位二进制代码表示A的点阵信息。 4.数字计算机的主要特点是什么? 1. (1)能在程序控制下自动连续地工作; (2|)运算速度快; (3)运算精度高; (4)具有很强的信息存储能力; (5)通用性强,应用领域及其广泛。 5.衡量计算机性能的基本指标有哪些? 答:衡量计算机性能的基本指标: (1)基本字长——参加一次运算的数的位数; (2)数据通路宽度——数据总线一次能并行传送的位数; (3)运算速度——可用①CPU的时钟频率与主频,②每秒平均执行指令数,③典型四则运算的时间来表示。 (4)主存储器容量——可用字节数或单元数(字数)×位数来表示。 (5)外存容量——常用字节数表示。 (6)配备的外围设备及其性能。 (7)系统软件配置。 7.系统软件一般包括哪些部分?列举你所熟悉的三种系统软件。 系统软件一般包括操作系统,编译程序、解释程序、各种软件平台等。例如WINDOWS98操作系统,C语言编译程序等,数据库管理系统。 8.对源程序的处理有哪两种基本方式? 对源程序的处理通常有两种处理方式:解释方式和编译方式。 第2章习题二 1.将二进制数(101010.01)2 转换为十进制数及BCD码。 解:(101010.01)2 = (42.25)10 = (01000010.00100101)BCD 2.将八进制数(37.2)8转换为十进制数及BCD码. 解:(37.2)8 = (31.25)10 =(00110001.00100101)BCD 3.将十六进制数(AC.E)转换为十进制数及BCD码. 解: (AC.E)16 =(172.875)10 = 0.1)BCD 4.将十进制数(7 5.34)10转换为8位二进制数及八进制数、十六进制数。

汇编语言程序设计练习题及答案

一、单项选择题(在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。) 1.为在一连续的存储单元中,依次存放数据41H,42H,43H,44H,45H,46H,可选用的数据定义语句是(D) A.DB 41,42,43,44,45,46 B.DW 4142H,4344H,4546H C.DW ‘AB’,‘CD’,‘EF’D.DW ‘BA’,‘DC’,‘FE’ 2.DA2 DB‘AB’,‘CD’ ┇ MOV AX,WORD PTR DA2+1 上述语句执行后AX中的值是(D) A.‘AD’B.‘BC’ C.‘DA’D.‘CB’ 3.下列数据定义语句中可实现留空20H个字节存储单元的是(D) A.DB 20 DUP(?) B.DW 20H DUP(?) C.DB 10H DUP(4 DUP(?)) D.DD 08H DUP(?) 4.如某存储器分段时,表示偏移地址是17位二进制代码,那么一个段最多的存储单元数是(D) A.32K字节B.32K字 C.64K字节D.64K字 5.下列寄存器中用来指示堆栈中任意数据区的偏移地址的是(B)A.BX B.BP C.SI D.DI 6.下列指令中有语法错误的是(C) A.PUSH AX B.PUSH [20H+SI+BX] C.POP CS D.PUSH CS 7.执行PUSH BP指令时,目的操作数的物理地址表达式是(D) A.16*SS+BP B.16*DS+BP C.16*CS+IP D.16*SS+SP 8.把BL中的数据输出到端口8CH中正确指令是(C) A.OUT 8CH,BL B.IN 8CH,BL C.MOV AL,BL D.MOV AL,BL OUT 8CH,AL IN 8CH,AL 9.结果为零的条件转移指令,其测试条件是(A) A.ZF=1 B.ZF=0 C.SF=l D.SF=0 10.下面程序段完成测试DA-BYTE字节单元中数是否为负数,若是则将全l送DH中,否则全0送DH中,那么程序段中方框里应填的语句是 MOV CH,0 MOV CH,0FFH ZERO:MOV DH,CH(C) A.JNZ ZERO B.JS ZERO

《汇编语言程序设计》必考试题及答案

《汇编语言程序设计》必考试题及答案 一、选择题 1. 汇编语言属于 ____。 A. 高级语言 B. 机器语言 C. 低级语言 D. 自然语言 答案:C. 低级语言 2. 在汇编语言中,寄存器eax主要用于 ____。 A. 存储返回值 B. 存储函数参数 C. 存储局部变量 D. 存储全局变量 答案:A. 存储返回值 3. 汇编语言中,jmp指令用于 ____。 A. 设置循环条件 B. 调用子程序

C. 跳转到指定地址 D. 返回主程序 答案:C. 跳转到指定地址 二、简答题 1. 请简述汇编语言与高级语言的区别。 汇编语言是一种低级语言,使用助记符来代表机器指令,每条汇编 指令对应一条机器指令。而高级语言更加抽象,采用更接近人类自然 语言的表达方式,通过编译器将高级语言编写的程序转换为机器语言。 2. 请列举汇编语言常用的寄存器及其作用。 汇编语言常用的寄存器包括: - eax:主要用于存储返回值。 - ebx、ecx、edx:通用寄存器,用于暂存计算结果。 - esi、edi:源操作数寄存器和目的操作数寄存器,用于存储数据传 输时的源地址和目的地址。 - ebp、esp:用于管理函数调用过程中的栈帧。 - eip:指令指针寄存器,存储下一条将要执行的机器指令的地址。 三、编程题

请编写汇编语言程序,实现从键盘输入两个数,并将其相加后输出的功能。 ```assembly section .data prompt db '请输入两个数,以空格分隔:', 0 result db '两数相加的结果为:%d', 0 section .bss num1 resb 4 num2 resb 4 section .text global _start _start: ; 输出提示信息 mov eax, 4 mov ebx, 1 mov ecx, prompt mov edx, 20 int 0x80 ; 输入第一个数

汇编语言程序设计习题-答案

4.1分析执行下列指令序列后的结果:1)MOVAX,1234H MOVBX,00FFH ANDAX,BX 【答】(AX)=0034H 2)MOVAL,0101B ANDAL,000111B;(AL)=000101B ORAL,11000B;(AL)=110101B XORAL,0011B;(AL)=11010B NOTAL 【答】(AL)=00101B 3)MOVDL,05H MOVAX,0A00H MOVDS,AX MOVSI,0H MOVCX,0FH AGAIN: INCSI CMP[SI],DL LOOPNE AGAIN HLT

本程序实现了什么功能? 【答】在以0A001H开始的15个单元中查找05H。 4)MOVAX,DSEGADDR MOVDS, AX MOVES,AX MOVSI, OFFSET B1ADDR MOVDI,OFFSET B2ADDR MOVCX,N CLD REPMOVSB HLT 本程序实现了什么功能? 【答】将B1ADDR中N个字节数据传送到B2ADDR开始的15个存储单元。5)MOVAX, 0H MOVDS,AX MOVES, AX MOVAL,05H MOVDI,0A000H MOVCX,0FH CLD AGAIN:

SCASB LOOPNEAGAIN HLT 本程序实现了什么功能? 【答】从地址0A000H开始的15个单元中查找字节型数据05H,用条件循环LOOPNZ,控制数据05H的查找。 4.2阅读程序: 1).CLD LEADI,[0100H] MOVCX, 0080H XORAX, AX REPSTOSW 本程序实现了什么功能? 【答】将DS中起始地址为0100H的128个字节单元清零。 2).MOVAL, 08H SAL,01H;(AL)=000100H MOVBL, AL MOVCL ,02H SAL,CL;(AL)=01000H ADDAL,BL;(AL)=0100H 本程序实现了什么功能?

汇编语言程序设计试卷

汇编语言程序设计试卷 一. (共75 题,共150 分) 1.下列说法错误的是。(2 分) A.机器指令的形式包含操作码和地址码 B.计算机只能够识别规定好的机器指令 C.不同计算机系统之间的机器指令能够相互兼容 D.汇编语言的主要操作和机器指令基本上一一对应 ★检查答案标准答案:C 2.两个有符号数相减,通过标志位判断结果是否溢出。(2 分) A.ZF B.CF C.SF D.OF ★检查答案标准答案:D (2 分) 3.汇编语言和高级语言的比较,下列说法错误的是 A.汇编语言和高级语言都不能被机器直接识别 B.完成同样的功能,汇编语言占据空间小 C.高级语言可以使用变量,但汇编语言不行 D.汇编语言中有类似于高级语言的宏功能 ★检查答案标准答案:C 4.下列寄存器中,哪个寄存器不能供汇编程序直接访问. (2 分) A.SP B.BP C.CS D.IP ★检查答案标准答案:D 5.下列寄存器,哪个不能作基址寄存器。(2 分) A.BX B.BP C.SI D.ESI ★检查答案标准答案:C 6.设有关寄存器及存储单元的内容如下:则指令MOV AX, 1100H[BX][SI] 执行完毕后,AX 寄存器中的值是 。(2 分) A.65B7H B.3412H C.4C2AH D.7856H ★检查答案标准答案:A

A.可以作立即寻址的操作数 B.也可作某些存贮器操作数的的位移量组成部分 C.在数据定义伪指令语句中给变量赋初值 D.可以作目的操作数 ★检查答案标准答案:D 8.若(ECX)=0ABCD1234H(BL)=0E3H,则语句MOVSX ECX,BL执行后:(ECX)的值为 。(2 分) A.0ABCD1234H B.0FFFFFFE3H C.000000E3H D.0ABCD12E3H ★检查答案标准答案:B (2 分) 9.若(AX)=0FFFDH ,则语句ADD AX,7FFFH 执行后,下列说法正确的是。 A.(AX) =7FFCH,(OF)=1 ,(CF)=1 B.(AX) =17FFCH ,(OF)=1 ,(CF)=1 C.(AX) =7FFCH,(OF)=0 ,(CF)=1 D.(AX)= 17FFCH ,(OF)=0 ,(CF)=1 ★检查答案标准答案:C 10.在语句INC SS:[BX] 中,操作数使用的段寄存器是。(2 分) A.DS B.ES C.CS D.SS ★检查答案标准答案:D 11.若(BX)= 0A2F4H,语句SAR BX, 2 执行后,(BX) = 。(2 分) A.0A2FH B.0E8BDH C.28DBH D.2F4AH ★检查答案标准答案:B 12.若(AX)=0FFFFH ,则指令XOR AX, 0AAAAH 执行后,(AX)= (2 分) A.0AAAAH B.5555H C.0FFFFH D.1111H ★检查答案标准答案:B 13.控制汇编程序应如何工作的约定符号称汇编控制命令,又称为。(2 分) A.条件跳转指令 B.机器指令 C.伪指令

【汇编语言程序设计】试题及答案合集

汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用(B)A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。

B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是(D) A:以“先入后出”为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是( A) A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是( B) A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是(B) A:PF B:SF C:DF D:OF 14.下列指令正确的是( CD) A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器(C) A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _LEA SI,FLD______ MOV CX, 8 XOR AX, AX

汇编语言程序设计试题参考答案

汇编语言程序设计参考答案 A卷 一、单项选择题(本大题共8小题,每小题2分,共16分) 1.C 2.B 3.B 4.A 5.C 6.A 7.A 8.C 9.D 10.B 二、名词解释(本大题共5小题,每小题4分,共20分) 11.微处理器:也成中央处理器(CPU),是微型计算机的核心部件,包含运算器、控制器、寄存器组及总线接口等,负责对计算机系统各部件进行统一的协调和控制。 12.寻址方式:就是寻找操作数或操作数地址的方式,根据寻址方式可方便地访问各类操作数。 13.伪指令:是发送给汇编程序的命令,在汇编过程中由汇编程序进行处理,如定义数据、分配存储区、定义段及定义过程等。 14.中断源:指能引起中断的外部设备或内部原因。 15.汇编语言:是一种面向CPU指令系统的程序设计语言,采用指令助记符来表示操作码和操作数,用符号地址表示操作数地址。 三、简答题(本大题共4小题,每小题5分,共20分) 16.微型计算机系统软件的主要特点是什么? 计算机系统软件的主要特点是简化计算机操作,支持应用软件的运行并提供相关服务,通常包括操作系统、语言处理程序等。 17.什么是逻辑地址?他由哪两部分组成? 计算机存储器中给每个逻辑段编址的地址称逻辑地址。逻辑地址是在程序中使用的地址,他由段地址和偏移地址两部分构成。 18.一个完整的汇编源程序由那些逻辑段组成?各逻辑段的主要作用是什 么? 一般情况下汇编语言源程序应该由以下3个逻辑段组成: ①数据段:用来在内存中建立一个适当容量的工作区,以存放常数, 变量等程序需要对其进行操作的数据;

②堆栈段:用来在内存中建立一个适当容量的堆栈区,以便在中断、 子程序调用时使用; ③代码段:包括了许多以符号表示的指令,其内容就是程序需要执行 的具体操作。 19. DMA数据传送方式的特点是什么? DMA数据传送方式把外设与内存交换信息的操作与控制交给DMA控制器,简化了CPU对数据交换的控制,数据传送速度快,但这种方式电路结构复杂,硬件开销大。 20. 简述中断技术的优点。 ①CPU与外设可并行操作。 ②可对实时信息进行采集、处理和控制。 ③可对计算机出现的故障进行随机处理。 四、计算与分析(本大题共3小题,每小题5分,共15分) 21. 请将(158.625)10转为二进制。 结果:(10011110.101)2 22. 若一个程序段开始执行前,(CS)=33A0H,(IP)=0130H,则该程序段 启动执行指令的实际地址PA是多少? PA=(CS)×10H+(IP)=33A0H×10H+0130H=33B30H 23. 有两个16位的字31DAH和5E7FH,它们在8086系统存储器中的地址 分别为00130H和00134H,试画出它们的存储示意图。

《汇编语言程序设计》习题答案(第二版,沈美明,温冬婵,清华大学出版社)

1 汇编语言程序设计(第二版) 第二章 1、 答:直接由指令指定的I/O 端口数为256个。 2、答: 3、答:字节单元:(30022H ) = AB H ,(30024H ) = EF H 字单元: (30021H ) = AB34 H ,(30022H ) = CDAB H 。 4、答:3017:000A 的存储单元的物理地址是3017AH , 3015:002A 的存储单元的物理地址是3017AH , 3010:007A 的存储单元的物理地址是3017AH 。 5、答:该程序的第一个字的物理地址是0AAA40H 。 6、答:条件标志OF 、SF 、ZF 、CF 的值依次分别为0、0、0、0。 7、答:(1)AX 、BX 、CX 、DX 、AH 、AL 、BH 、BL 、CH 、CL 、DH 、DL 、 SP 、BP 、DI 、SI (注意:学生尽量不要用SP 参与加减运算) (2)CX (3)DX 、AX 、AH 、AL (4)CS 、DS 、ES 、SS (5)FLAGS (6)IP (7)SS 、SP 、BP 8、答:可以用来指示存储器地址的寄存器有BX 、SP 、BP 、DI 、SI 、IP 、CS 、DS 、 ES 、SS 。 9、答:唯一正确的是D 。 第三章 1。 .(1)立即寻址 没有 (2)直接寻址 7237H (3)使用BX 的寄存器寻址 没有 (4)使用BX 的间接寻址 637DH (5)使用BX 的寄存器相对寻址 0D5F0H (6) 基址变址寻址 8E18H (7)相对基址变址 004FH

2 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 3。 (1)寄存器间接寻址 MOV BX,OFFSET [BLOCK][0AH] MOV DX ,[BX] (2)寄存器相对寻址 MOV SI,OAH MOV DX,[BLOCK][SI] (3)基址变址寻址 MOV BX ,BLOCK MOV SI,OAH MOV DX,[BX][SI] 4现有(DS ) =2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX 寄存器的内容。 (1)MOV AX,1200H 1200H (2) MOV AX,BX 0100H (3) MOV AX,[1200] 4C2AH 注意,是字单元!! (4)MOV AX,[BX] 3412H 同上 (5)MOV 1100[BX] 4C2AH (6) MOV AX,[BX][SI] 7856H (7) MOV AX,1100[BX][SI] 65B7H 5。 (1) 7CD9H (2) 1200H (3) 6319H 6。 MOV BX,2000H LES DI ,[BX] MOV AX, ES :DI 7。转向地址OBJ 的值分别为:(1)064DH (2)0691H (3)05E0H 注意有符号数的符号位~~ 8。(1) MOV AX,0ABH 立即数寻址 无物理地址 (2)MOV AX,BX 寄存器寻址 同上 (3)MOV AX,[100] 直接寻址 20100H (4)MOV AX,V AL 直接寻址 20050H (5) MOV AX,[BX] 寄存器间接寻址 20100H (6) MOV AX,ES :[BX] 直接寻址 21100H (7) MOV AX,[BP] 寄存器间接寻址 20010H

汇编习题(含答案)汇编

第一章基本知识 一、单项选择题 1.若十进制数为13 2.75,则其十六进制数为( B ) A.21.3 B.84.C C.4.6 D.6 2.若[X]补=11111,则其十进制真值为(C ) A.-31 B.-15 C.-1 D.31 3.已知X=78,Y=-83则[X+Y]补=( C ) A.0F5H B.0A1H C.0FBH D.65H 4.已知[X]补=98H, 则[X]补/2=( A ) A.0CCH B.4CH C.49H D.31H 二、填空题 1.(35)10 = (23)16。 2.(15)10 = (1111)2。 3. 计算机的存储容量1KB = (1024)Byte。 4. 计算机的存储容量1MB = (1024)KB。 5. 计算机的存储容量1GB = (1024)MB。 第二章8086计算机组织 一、单项选择题 1.在微机系统中分析并控制指令执行的部件是( C ) A.寄存器 B.数据寄存器 C.CPU D.EU 2.在计算机的CPU中执行算术逻辑运算的部件是( A ) A.ALU B.PC C.AL D.AR 3.能被计算机直接识别的语言是( C ) A.C语言 B.汇编语言 C.机器语言 D.面向对象语言 4.8086/8088的存储器组织是将存储器划分为段,可作为段的起始地址的是( B )。A.185A2H B.00020H B.01004H D. 0AB568H 5.堆栈中当前出栈的存储单元地址是( A ) A.SS*10H+SP B.SS*10H+BP C.SS*10+SP D.SS*10+BP 6.标志寄存器中属于控制标志位的是(B ) A.DF,OF,SF B.DF,IF,TF C.OF,CF,PF D. AF, OF, SF 7.8086/8088存储器分段,每个段不超过( D ) A.64K个字 B.32K个字节

汇编语言课后习题及答案 按章节 超全面

`00第一章课外练习题 一、单项选择题: 1.从键盘输入的字符,在计算机内存储的是它的(A) (A)二进制编码(B)四进制编码(C)八进制编码(D)十六进制编码2.6位无符号二进制数能表示的最大十进制数是(B)。 (A)64 (B)63 (C)32 (D)31 3.十进制数269变换为十六进制数是(C)。 (A)10B (B)10C (C)10D (D)10E 4.8位的微型计算机系统是以16位来表示地址,则该微机系统有(C)个地址空间。 (A)255 (B)65535 (C)65536 (D)1048576 5.8位有符号二进制数能表示的最大十进制数是(D)。 (A)256 (B)255 (C)128 (D)127 6.十六进制数88H,可表示成下面几种形式,请找出错误的表示(D)。 (A)无符号十进制数136 (B)带符号十进制数-120 (C)压缩型BCD十进制数88 (D)8位二进制数-8的补码表示7.有一个数值152,它与十六进制数6A相等,那么该数值是(B)。 (A)二进制数(B)八进制数(C)十进制数(D)四进制数8.7位ASCII总共可表示(C)个符号。 (A)256 (B)127 (C)128 (D)255 9.4B的字长是(C)。 (A)8位(B)16位(C)32位(D)64位 二、判断题(判断每题正误,对的在题后括号内划“√”,错的划“×”) 1.字节通常用英文单词“Bit”来表示(×)。 2.目前广泛使用的Pentium计算机其字长为5个字节(×)。 3.存储器中将8个相邻的二进制位作为一个单位,这种单位称为字节(√)。 4.微型计算机的字长并不一定是字节的整数倍(×)。 三、填空题 1.8位有/无符号整数的表示范围写成16进制形式为(80~~7F)/(00~~FF)。 2.己知:计算机中有一个“01100001”编码,如果把它看作是无符号数,它是十进制什么数(97);如果认为它是BCD,则表示(01100001)BCD;认为它是某个ASCII,则代表(a)字符。 3.若[X]补=X,则X为(非负数)。 4.(00101011)B+(13)D+(1B)H=(123)Q 5.已知:A=10001011,B=11011010,求A∧B=(10001010);A∨B=(11011011)。 6.已知:X=+0010011B,Y= -0111100B,试用补码完成真值(X+Y)=(11010111);(X - Y)=(01001111)。 7.十进制数的(731)=(011100110001)BCD。 8.(011100110001)BCD=(731)十进制数。 9.将一个0~9之间的数据转换为ASCII需加(30H)。 10.大写英文字母转换为小写英文字母需加(20H)。 11.英文字母“A”~“F”转换为十六进制数值A~F需要减(37H)。

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