《汇编语言程序设计》复习资料.docx

上传人:b****5 文档编号:30364940 上传时间:2023-08-13 格式:DOCX 页数:21 大小:22.37KB
下载 相关 举报
《汇编语言程序设计》复习资料.docx_第1页
第1页 / 共21页
《汇编语言程序设计》复习资料.docx_第2页
第2页 / 共21页
《汇编语言程序设计》复习资料.docx_第3页
第3页 / 共21页
《汇编语言程序设计》复习资料.docx_第4页
第4页 / 共21页
《汇编语言程序设计》复习资料.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

《汇编语言程序设计》复习资料.docx

《《汇编语言程序设计》复习资料.docx》由会员分享,可在线阅读,更多相关《《汇编语言程序设计》复习资料.docx(21页珍藏版)》请在冰豆网上搜索。

《汇编语言程序设计》复习资料.docx

《汇编语言程序设计》复习资料

《汇编语言程序设计》复习资料

17、下列指令中,执行后对标志未发生影响的是_A、B、E、F、H、I、M、N、O_____。

 A、MOVAX,[BX]    B、PUSHAX    C、ADDAX,00FFH

 D、CMPAX,BX     E、JBNEXT    F、CALLSUBB

 G、XORAX,AX     H、MOVSB     I、LEADX,BUF

 J、TESTAX,8000H   K、MULBX    L、DIVBX

 M、NOTCX       N、LOOPLOP   O、XCHGAX,BX0

18、按照下列指令中操作数的寻址方式在括号中填入适当的字母:

                源操作数  目的操作数

 A、MOVAX,1200H      (A )(B    )

 B、CMPWORDPRT[SI],120H (A  )(D  )

 C、ADDAX,14[BX]     (E)(B)

 D、SUB[BX+DI],CX     (B  )(F)

 E、ANDBX,BUF       (C )(B  )

 F、LEADI,[SI]      (D  )(B    )

 G、XOR[BX+SI+3],DX    (B  )(G)

  a.立即寻址;    b.寄存器寻址;    c.直接寻址;

  d.寄存器间接寻址; e.寄存器相对寻址;  f.基址变址寻址;g.相对基址变址寻址.

19、某存储单元的地址为3A80:

13EBH,其中的3A80是__段地址,13EB是__偏移____地址;该存储单元的物理地址是__3BBEB____。

若段地址改变为20D4,则该存储单元的逻辑地址为__20D4:

_1AFABH___。

20、十进制数-100的8位二进制数的补码为(C )。

 A、      B、      C、     D、

21、下列是8位二进制数的补码,其中真值最大的是(D )。

 A、      B、      C、     D、

22、16位有符号数的补码所表示的十进制数的范围是(B )。

 A、-32767~+32768   B、-32768~+32767   C、-65535~+65536  D、0~65535

23、以下指令中,执行后AL中的数据不变的是(B、D、E、F  )。

 A、ANDAL,CL     B、ORAL,AL     C、XORAL,AL    D、CMPAL,AL

 E、ADDAL,0     F、ANDAL,0FFH    G、XORAL,0FFH   H、ORAL,0FFH

24、下列指令中,执行后,不改变标志位CF的是(A、E、F、G  )。

 A、NOTAL       B、ANDAL,AL     C、SALAL,1    D、MULAL

 E、MOVSB       F、INCAL       G、POPAX      H、POPF

25、下列指令中,执行后,不改变标志位ZF的是(D )。

 A、CMPAL,BL     B、ANDAL,AL     C、TESTAL,0FFH   D、RORAL,CL

26、执行指令CALLSUBB时,所要保护的断点在__IP____寄存器中,而执行指令CALLFARPTRSUBB时,所要保护的断点在___IP、CS_________寄存器中。

27、已知某内存单元的段值和偏移分别为2010H和100H,则该单元的物理地址为(20200H)。

28、已知BX=1000H,SI=2000H,DI=3000H,BP=4000H,则地址表达式[BX+100H]、[DI][BP]和2000H[SI]的值分别为(1100H)、(7000H)和(4000H)。

29、已知AL=22H,AH=21H,则执行“SHRAL,1”和“ROLAH,1”后,AL和AH的值分别为(11H)和(42H),AX的值为(4211H)。

30、对于23H号中断,其中断向量在中断向量表中所占的4个存储单元的地址分别为(0008CH)、(0008DH)、(0008EH)和(0008FH)。

31、指令语句“MOVAH,0”和“INT16H”实现的功能是(从键盘上读一个字符并把扫描码送到AH中,把ASCII码回送到AL),它的出口参数为(AL=字符码

AH=扫描码)。

32、指令语句“MOVAH,3FH”和“INT21H”实现的功能是(读文件或设备(handle)),它的入口参数为(DS:

DX=数据缓冲区地址)。

33.十六进制数88H,可表示成下面几种形式,请找出错误的表示(D)。

A、无符号十进制数136B、带符号十进制数-120

C、压缩型BCD码十进制数88D、8位二进制数-8的补码表示

34.指令指针寄存器是(A)。

A、IPB、SPC、BPD、PSW

35.当执行指令ADDAX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是(A)。

A、表示结果中含1的个数为偶数B、表示结果中含1的个数为奇数

C、表示该数为偶数D、表示结果中低八位含1的个数为偶数

36.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是(A)。

A、MOVAL,00HB、ANDAL,00HC、XORAL,ALD、SUBAL,AL

37.下列指令执行后总是使CF=0,OF=0的是(A)。

A、ANDB、NEGC、NOTD、INC

38.完成同指令XCHGAX,BX相同功能的指令或指令序列是(D)。

A、MOVAX,BXB、MOVBX,AX

C、PUSHAXD、MOVCX,AX

POPBXMOVAX,BX

MOVBX,CX

39.设AH=0,AL=06H,BL=09H,执行指令ADDAL,BLAAA之后,其结果应是(A)。

AAH=01,AL=05BAH=1AL=15

CAH=0AL=0FHDAH=0AL=05

40.设AL=0B4H,BL=11H,指令“MULBL”和指令“IMULBL”分别执行后OF,CF的值为(B)。

AOF=1,CF=0BOF=1,CF=1

COF=0,CF=0DOF=0,CF=1

41.在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是(C)。

ACX=0且ZF=0BCX=0且ZF=1

CCX=0或ZF=0DCX=0或ZF=1

42.下面指令中,合理而有意义的指令是(D)。

AREPLODSBBREPSCASBCREPCMPSBDREPMOVSB

43.在汇编语言程序中,对END语句的叙述正确的是(C)。

AEND语句是一可执行语句BEND语句表示程序执行到此结束

CEND语句表示源程序到此结束DEND语句在汇编后要产生机器码

44.下面的数据传送指令中,错误的操作是(D)。

AMOVSS:

[BX+DI],1000HBMOVDX,1000H

CMOVWORDPTR[BX],1000HDMOVDS,2000H

45.下面指令执行后,变量DAB中的内容是(C)。

DAWDW2A05H

DABDB0FAH

MOVAL,BYTEPRTDAW

SUBDAB,AL

A0DAHB0FAHC0F5HD0D0H

46.执行下列指令后,正确的结果是(B)。

MOVAL,100

MOVBL,-2

AAL=100HBL=02HBAL=64HBL=0FEH

CAL=64HBL=82HDAL=100HBL=0FEH

47.设数据段中已有:

DA1DB12H,34H

DA2DW56H,78H

下面有语法错误的语句是(B)。

AADR1DWDA1BMOVDA1+1,AX

CMOVBYTEPTRDA2+1,ALDMOVWORDPTRDA1+1,AX

48.实现将DX:

AX中存放的32位数扩大四倍,正确的程序段是(C)。

ASHLAX,2BRCLAX,2

ROLDX,2SHLDX,2

CMOVCX,2DSHLAX,1

LOP:

SHLAX,1SHLAX,1

RCLDX,1RCLDX,1

LOOPLOPRCLDX,1

49.TA1DW0102H,0304H,0506H这个题目是错的

TA2DB02H,03H,04H

MOVBX,DS:

[0006H]

ANDBX,0FFH

ANDBH,[BX]

上述指令序列运行后,BX的内容是()。

A0605HB0402HC0606HD0204H

50.当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是(C)。

AJLEBJNLCJNLEDJL

51.下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为(A)。

TESTBH,01H_________K1

AJNEBJZCJSCJC

52.测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是(B)。

ATESTBL,4FHBXORBL,4FH

JZNEXTJZNEXT

CANDBL,4FHDORBL,4FH

JZNEXTJZNEXT

二、根据给定的条件写出指令或指令序列:

1、将一个字节的立即数送到地址为NUM的存储单元中。

MOVNUM,DATADATA是一个字节立即数

2、将一个8位立即数与地址为BUF的存储单元内容相加。

ADDBUF,DATADATA是一个8位立即数

3、将地址为ARRAY的存储单元中的字数据循环右移一位。

RORARRAY,1

4、将16位立即数与地址为MEM的存储单元中的数比较。

CMPWORDPTRMEM,DATADATA是一个16位立即数

5、测试地址为BUFFER的字数据的符号位。

TESTWORDPTRBUFFER,8000H

6、将AX寄存器及CF标志位同时清零。

SUBAX,AX

7、用直接寻址方式将首地址为ARRAY的字数组中第5个数送往寄存器BX中。

MOVBX,ARRAY+8

8、用寄存器寻址方式将首地址为ARRAY的字数组中第5个数送往寄存器BX中。

MOVCX,ARRAY+8

MOVBX,CX

9、用相对寻址方式将首地址为ARRAY的字数组中第8个数送往寄存器BX中。

MOVSI,14

MOVBX,ARRAY[SI]

10、用基址变址寻址方式将首地址为ARRAY的字数组中第N个数送往寄存器BX中。

MOVCL,2

MOVAL,N

DECAL

MULCL

MOVBX,AX

LEASI,ARRAY

MOVBX,[BX][SI]

11、将首地址为BCD_BUF存储单元中的两个压缩BCD码相加,和送到第三个存储单元中。

MOVAL,BCD_BUF

ADDAL,BCD+1DAA

MOVBCD_BUF+2,AL

三、按照给定的条件为程序定义一个数据段,并画出存储单元的示意图:

1、STR是字符串THISISADATA_SEGMENT。

DATASSEGMENT

STRDB"THISISADATA_SEGMENT."

DATASENDS

2、DAT1是字节变量,初值为23,4BH,126,0D3H。

DATASSEGMENT

DAT1DB23D,4BH,126D,0D3H

DATASENDS

3、DAT2是16进制数字变量,初值为100,255,2DUP(3,5)

DATASSEGMENT

DAT2DW64H,0FFH,3H,5H,3H,5H

DATASENDS

4、LEN是以上存储单元的字节数。

DATASSEGMENT

LENDB39D

DATASENDS

四、写出完成下列功能的程序段:

1、将AL中的两位BCD码分离,分别存放DL和DH中。

SUBAH,AH

movcl,4

SHLAX,cl

SHRAL,cl

MOVDL,AL

MOVDH,AH

2、将DL中的4位二进制数转换成16进制数的ASCII码。

SBUDH,DH

movcl,4

SHLDX,cl

SHRDL,cl

ADDDL,30H

CMPDL,3AH

JLOBJ1

ADDDL,7

OBJ1:

ADDDH,30H

CMPDH,3AH

JLOBJ2

ADDDL,7

OBJ2:

......

3、将AL中的8位二进制数高4位和低4位交换。

movcl,4

ROLAL,cl

4、将AL和BL中的非压缩BCD码合并成一个压缩的BCD码,存在AL中。

ANDAL,0FH

ANDBL,0FH

movcl,4

SHLAL,cl

ADDAL,BLDAA

5、将AL中的8位有符号数转换成它的绝对值。

TESTAL,80H

JEOBJ

NEGAL

OBJ:

......

6、用串扫描指令在一个字符串中查找字符'*'。

MOVCX,N;N是字符串的长度

MOVAL,2AH

LEADI,ADDRESS;ADDRESS是要查找的字符串的首地址

REPSCASB

7、将输入的大写字母改变成小写输出。

MOVAH,07H

INT21H

MOVDL,AL

ADDDL,20H

MOVAH,02H

INT21H

8、输入一个字母,然后输出它的后续字母。

MOVAH,07H

INT21H

MOVDL,AL

INCDL

MOVAH,02H

INT21H

9、将DX:

AX寄存器中的32位数向右移两位。

MOVbx,DX

ANDbx,0003H

movcl,2

SHRDX,cl

SHRAX,cl

SHLbx,0EH

ADDAX,bx

10、完成计算7×8。

MOVBL,8

MOVAL,7

MULBL

五、分析指令和程序。

1、已知SS=2000H,SI=1000H,AX=0ABCDH,SP=0100H,BP=00FEH,给出下列指令执行后,指定寄存器中的内容,并画出指令执行中堆栈的变化示意图。

 PUSHAX       AX=0ABCDH   SP=00FEH

 PUSHSI       SI=1000H   SP=00FCH

 POP AX       AX=1000H   SP=00FEH

 PUSHBP       BP=00FEH   SP=00FCH

 POP SI       SI=00FEH   SP=00FEH

 POP BP       BP=0ABCDH   SP=0100H

 PUSHAX       AX=0ABCDH   SP=00FEH

 POP BX       BX=0ABCDH   SP=0100H

2、已知CS=2300H,IP=32B4H,且在数据段中有定义:

 ARYDB0AH,28H,00H,3FH

 分别给出下列指令执行后的CS和IP的内容:

 A、LEABX,ARY

  JMPWORDPTR[BX]     CS=2300H IP=280AH

 B、MOVBX,OFFSETARY

  CALLWORDPTR[BX]    CS=2300H IP=280AH

 C、MOVBX,OFFSETARY

  JMPDWORDPTR[BX]    CS=3F00H IP=280AH

3、

  MOVAL,0

  MOVBL,0

  MOVCX,10

L1:

INCBL

  INCBL

  ADDAL,BL

  LOOPL1

  HLT

 程序的功能是__求公差为2的等差数列的前10项的和,画出程序的流程图。

4、

  XDB14

  YDB4DUP(?

  MOVSI,0

  MOVAH,0

  MOVAL,X

  MULAL

  MULAX

  MOVWORDPTR[SI],AX

  INCSI

  INCSI

  MOVWORDPTR[SI],DX

  HLT

 程序执行后X和Y的关系是__X是放AX中的低8位,Y的第一个字节里是放AX中的高8位___,画出程序的流程图。

5、

  MOVAX,4BD5H

  MOVBL,0

  MOVDL,0

  MOVCX,16

L1:

SHLAX,1

  JC L2

  INCBL

  JMPL3

L2:

INCDL

L3:

LOOPL1

  HLT

 程序的功能是__是统计AX中的0的个数和1的个数__,程序执行后BL=___05H______,DL=__09H_______,AX=__0000H_______。

画出程序的流程图。

6、

  XORDX,DX

L1:

MOVAH,1

  INT21H

  CMPAL,'$'

  JZ BACK

  CMPAL,30H

  JB L1

  CMPAL,39H

  JA L1

  ANDAL,0FH

  ADDDL,AL

  ADCDH,0

  JMPL1

BACK:

HLT

 程序的功能是__从键盘输入0-9之间的数并求和然后把和放在DX中,程序以输入“$”符号结束__,画出程序的流程图。

六、编写汇编语言程序,要有完整的格式(要有必要的数据段和代码段)

1、在屏幕上显示两个字符串,两个字符串要在不同的行。

  Thisisaprogram

  Diskoperationsystem

程序如下:

DATASEGMENT

DATA1DB"Thisisaprogram$"

DATA2DB"Diskoperationsystem$"

DATAENDS

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE,DS:

DATA

START:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

SUBDX,DX

LEADX,DATA1

MOVAH,09

INT21H

MOVAH,02

MOVDL,0AH

INT21H

MOVDL,0DH

INT21H

LEADX,DATA2

MOVAH,09

INT21H

RET

MAINENDP

CODEENDS

ENDSTART

2、用移位指令将X乘以30,结果存入Y单元。

DATASEGMENT

XDW?

YDW2DUP(?

DATAENDS

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE,DS:

DATA

START:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVAX,X

MOVBX,X

MOVCH,AH

ANDCH,1FH

SUBDX,DX

MOVDL,CH

MOVCL,5

SHLAX,CL

SHLBX,1

SUBAX,BX

SBBDX,0

MOVY,AX

MOVY+2,DX

RET

MAINENDP

CODEENDS

ENDSTART

3、设有三个数A,B和C,如果其中一个为0,将另外两个也清零,否则求它们的和,存入D单元中。

DATASEGMENT

ADW?

BDW?

CDW?

DATAENDS

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE,DS:

DATA

START:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

CMPA,0

JEBACK

CMPB,0

JEBACK

CMPC,0

JEBACK

JMPEXIT

BACK:

MOVA,0

MOVB,0

MOVC,0

EXIT:

RET

MAINENDP

CODEENDS

ENDSTART

 

4、在一个数组中查找最大数。

DATASEGMENT

ARRAYDW11DUP(?

DATAENDS

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE,DS:

DATA

START:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVCX,10

MOVSI,0

MOVDX,ARRAY[SI]

BACK:

CMPDX,ARRAY[SI]

JLECONTINUE

MOVDX,ARRAY[SI]

CONTINUE:

INCSI

INCSI

DECCX

JCXZEXIT

JMPBACK

EXIT:

MOVARRAY[SI],DX

RET

MAINENDP

CODEENDS

ENDSTART

5、用查表法计算Y=X*X-2*X。

DATASEGMENT

ARRAYDW2,X,Y

DATAENDS

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE,DS:

DATA

START:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

SUBAX,AX

MOVAL,BYTEPTR[ARRAY]

IMULBYTEPTR[ARRAY+2]

MOVDX,AX

MOVAL,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1