文档库 最新最全的文档下载
当前位置:文档库 › 汇编语言程序设计

汇编语言程序设计

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

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

一、单项选择题(本大题共170小题,每小题2分)

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

A、END 语句是一可执行语句

B、END 语句表示程序执行到此结束

C、END 语句表示源程序到此结束

D、END 语句在汇编后要产生机器码

2、将 DX 的内容除以 2,正确的指令是( C )

A、DIV 2

B、DIV DX,2

C、SAR DX,1

D、SHL DX,1

3、下列数值表达式和地址表达式中,错误的是( D )。

A、MOV AL,8*14+4

B、MOV SI,OFFSET BUF+13

C、MOV CX,NUM2-NUM1

D、MOV CX,NUM2+NUM1

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

A、SP

B、IP

C、BP

D、CS

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

A、IF=1

B、TF=0

C、DF=1

D、DF=0

6、设SS=2050H,SP=0140H,则栈顶存贮单元的物理地址是( A )

A、20640H

B、2063EH

C、2063FH

D、21900H

7、十进制数269变换为十六进制数是( C )。

A、10B

B、10C

C、10D

D、10E

8、8位的微型计算机系统是以16位来表示地址,则该微机系统有( C )个地址空间。

A、255

B、65535

C、65536

D、1048576

9、8位有符号二进制数能表示的最大十进制数是( D )。

A、256

B、255

C、128

D、127

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

A、无符号十进制数136

B、带符号十进制数-120

C、压缩型BCD十进制数88

D、8位二进制数-8的补码表示

11、有一个数值152,它与十六进制数6A相等,那么该数值是( B )。

A、二进制数

B、八进制数

C、十进制数

D、四进制数

12、7位ASCII总共可表示( C )个符号。

A、256

B、127

C、128

D、255

13、使用DOS功能调用时,子程序编号应放在( B )

A、AL

B、AH

C、AX

D、任意指定

14、没有语法错误的输出指令是( B ) P76

A、OUT AX,30H

B、OUT DX,AL

C、OUT AL,DX

D、OUT 30H,AH

15、用MOV指令将十进制数89以非压缩BCD码格式送入AX,可使用的指令是( B )

A、MOV AX,89

B、MOV AX,0809H

C、MOV AX,89H

D、MOV AX,0809

16、设AX=8765H,DX=4321H,执行CWD指令后,DX中的内容是( B ) P117

A、4321H

B、0FFFFH

C、8000H

D、0001H

17、设CL=05H,要获得CL=0AH,可选用的指令是( A )

A、XOR CL,0FH

B、NOT CL

C、OR CL,0AH

D、AND CL,0FH

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

A、OR AX,AX

B、SUB AX,AX

C、MOV CF,0

D、CLC

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

A、SP=1112H

B、SP=110EH

C、SP=1111H

D、SP=110FH

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

A、MOV [BX+SI],AL

B、MOV AX,[BP+DI]

C、MOV DS,AX

D、MOV CS,AX

21、当执行指令 ADD AX,BX 后,若 AX 的内容为 2BA0H,设置的奇偶标志位 PF=1,下面的叙述正确的是( D )

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

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

C、表示该数为偶数

22、下面指令中,合理而有意义的指令是( D )

A、REP LODSB

B、REP SCASB

C、REP CMPSB

D、REP MOVSB

23、在下列串操作指令中,同时使用源串和目的串地址指针的指令是( D )

A、STOSW

B、LODSW

C、SCASW

D、CMPSW

24、4B的字长是( C )。

A、8位

B、16位

C、32位

D、64位

25、8086∕8088 CPU中可用作寄存器间址的寄存器是( B )。

A、BX、SI、DI

B、BX、BP、SI、DI

C、BX、IP、SI、DI

D、BX,DX,SI,DI

26、指令mov 100[si][bp],ax 目标操作数的隐含段为( B )。

A、数据段

B、堆栈段

C、代码段

D、附加段

27、已知AL,BX为无符号数,计算AL×BX的乘积,使用下述程序段( C )

A、MUL BX

B、IMUL BX

C、MOV AH,0

D、CBW

MUL BX MUL BX

28、假设执行ADD指令后AL=8CH,再执行DAA指令,AL中的值是( A )

A、92H

B、0104H

C、74H

D、8CH

29、 MOV AL,79H

ADD AL,B1H

上面指令执行后,设置的标志位CF和ZF的值是( D )

A、CF=0, ZF=1

B、CF=l, ZF=1

C、CF=0, ZF=0

D、CF=1, ZF=0

30、 TEST DL,55H P123

JZ NEXT

NEXT:……

上述程序段,执行JZ指令时能产生转移的情况是( D )

A、DL>55H

B、DL<55H

C、DL=55H

D、DL中第0、2、4、6位均为0

A、AL=14H, CF=1

B、AL=50H, CF=1

C、AL=14H, CF=0

D、AL=50H, CF=0

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

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

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

C、表示该数为偶数

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

33、设AH=0,AL=06H,BL=09H,执行下列两条指令之后,其结果应是(A)。

ADD A L,BL

AAA

A、AH=01,AL=05

B、AH=1, AL=15

C、AH=0 ,AL=0FH

D、AH=0, AL=05

34、设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为(B)。

A、OF=1,CF=0

B、OF=1,CF=1

C、OF=0,CF=0

D、OF=0,CF=1

35、当执行完下列两条指令后,标志位CF和SF的值为( D )。

MOV AL,0C4H

ADD AL,9DH

A、0,0

B、1,1

C、0,1

D、1,0

36、98的BCD码是( B )

A、 B、 C、 D、

37、–0110110 的补码是 ( A )

A、 B、 C、 D、00110110

38、十进制数92对应的二进制数为 ( A )

A、01011100

B、01011101

C、

D、

39、假定AX的内容为-32768,在执行了指令NEG AH后,标志位(SF,OF)为(D)。

A、0,0

B、0,1

C、1,0

D、1,1

40、当A≥B时转移的条件转移指令为(A,B为带符号数)( D )。

A、JA

B、JAE

C、JG

D、JGE

41、已知X,Y为带符号数,两个数比较后,欲判断X≤Y发生转移,应使用( C )指令。

A、JBE

B、JL

C、JNG

D、JNA

42、假定AX和BX寄存器中存放的是有符号整数,如果AX>BX则转移到LABEL,应采用下面哪一条指令序列( D )。

JC LABEL JNC LABEL

C、CMP AX, BX

D、CMP AX, BX

JA LABEL JG LABEL

43、已知AX=8078H, BX=5610H,指令CMP BL,AH执行后OF,CF的值为( D )

A、0,0

B、0,1

C、1,0

D、1,1

44、十六进制38H相应的十进制数是 ( B )

A、32

B、56

C、58

D、60

45、AL=0AH,下列指令执行后能使 AL=05H 的是( C )。

A、NOT AL

B、AND AL,0FH

C、XOR AL,0FH

D、OR AL,0FH

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

A、STOSW

B、LODSW

C、SCASW

D、CMPSW

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

A、SHR BL,1

B、SHL BL,1

C、SAR BL,1

D、RCR BL,1

48、运算器的主要功能是进行( C )

A、逻辑运算

B、算术运算

C、逻辑运算与算术运算

D、初等函数的运算

49、下列不能做输入的是( C )

A、键盘

B、扫描仪

C、打印机

D、鼠标

50、在汇编下列条件转移指令中,两条指令功能不一样的是( D )。

A、JZ 与JE

B、JC与JB

C、JA与JNBE

D、JP与JS

51、循环指令LOOPNZ终止循环的条件是( B )。

A、CX=0,且ZF=0

B、CX=0,或ZF=1

C、CX<>0,且ZF=0

D、CX<>0,或ZF=1

52、在循环次数已知的情况下,采用哪种方法控制循环程序最方便( A )。

A、计数法

B、条件控制法

53、循环控制指令隐含指定哪个寄存器作为循环计数器( B )。

A、CL

B、CX

C、AL

D、AX

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

A、MOV AL,00H

B、AND AL,00H

C、XOR AL,AL

D、SUB AL,AL

A、ZF

B、CF

C、PF

D、OF

56、8086状态字PSW中表示运算结果为零的标志位是( A )

A、ZF

B、CF

C、PF

D、OF

57、将一个字数据入栈(PUSH AX), 栈指针如何变化( A )

A、SP<-SP-2

B、SP<-SP-1

C、SP<-SP+2

D、SP<-SP+1

58、将一个字节数据入栈(PUSH AL), 栈指针如何变化( B )

A、SP<-SP-2

B、SP<-SP-1

C、SP<-SP+2

D、SP<-SP+1

59、从键盘输入的字符,在计算机内存储的是它的( A )

A、二进制编码

B、四进制编码

C、八进制编码

D、十六进制编码

60、执行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

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

A、JNC

B、JC

C、JZ

D、JS

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

A、MOV SS:[BX+DI],1000H

B、MOV DX,1000H

C、MOV WORD PTR[BX],1000H

D、MOV DS,2000H

63、某存储单元的物理地址是 12345H,可以作为它的段地址有( D )

A、2345H

B、12345H

C、12340H

D、1234H

64、6位无符号二进制数能表示的最大十进制数是( B )。

A、64

B、63

C、32

D、31

65、下列四个寄存器中,哪个寄存器在程序设计中是不可省略的( A )。

A、CS

B、DS

C、ES

D、SS

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

A、AND

B、NEG

C、NOT

D、INC

67、若(AX)=B,为了使其内容变为01010010B,下列(A)指令执行一次即可完成此操作

A、NOT指令

B、OR指令

C、AND指令

D、XOR指令

68、宏指令库以( C )格式存放在磁盘上。

69、指出该条指令的寻址方式 MOV AX, [DI] ( C )

A、立即寻址

B、寄存器寻址

C、寄存器间接寻址

D、直接寻址

70、CPU处理动作的最小单位是( B )

A、指令周期

B、时钟周期

C、总线周期

D、机器周期

71、设BX=1234H,DS=2000H,(21234H)=5678H,则指令“LEA SI,[BX]”执行后的结果是( B )

A、SI=5678H

B、SI=1234H

C、SI=2000H

D、SI=3234H

72、设BX=1234H,DS=2000H,(21234H)=5678H,则指令“MOV SI,[BX]”执行后的结果是( A )

A、SI=5678H

B、SI=1234H

C、SI=2000H

D、SI=3234H

73、汇编程序使用( C )伪指令使重复块重复多次。

A、LOOP

B、REPE

C、REPT

D、LOCAL

74、8086∕8088微处理器可访问的I ∕ O地址空间大小为( B )。

A、1KB

B、64KB

C、1MB

D、16MB

75、以80X86为CPU的PC机,在实地址工作方式下,其中断向量长度为( B )。

A、8个字节

B、4个字节

C、2个字节

D、1个字节

76、指令mov ax, 10[si]的源操作数字段的寻址方式是( C )。

A、寄存器寻址

B、寄存器间址

C、变址寻址

D、基址寻址

77、以下语句汇编后,CENTH的值是( A )。

buf1 dw 8,19

buf2 db 6,'abc$',10 dup('5')

CENTH equ buf2—buf1

A、4

B、8

C、14

D、17

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

MOV AL, 100

MOV BL, -2

A、AL=100H,BL=02H

B、AL=64H,BL=0FEH

C、AL=64H,BL=82H

D、AL=100H,BL=0FEH

79、完成同指令XCHG AX,BX相同功能的指令或指令序列是( D )。

A、MOV AX,BX

B、 MOV BX,AX

POP BX MOV AX,BX

MOV BX,CX

80、若栈顶的物理地址为20100H,当执行完指令PUSH AX后,栈顶的物理地址为( D )。

A、20102H

B、20101H

C、200FFH

D、200FEH

81、JMP SI的目标地址偏移量为( A )。

A、SI的内容

B、SI所指向的内存字单元之内容

C、SI+IP的内容

D、IP+ [SI]

82、JMP WORD PTR [BX]转移的目标地址是( D )。

A、BX的内容

B、SP+BX之和

C、IP+ [BX]之和

D、BX指出的内存单元之内容

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

A、对正数求补时,CF=0

B、对负数求补时,CF=0

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

D、对零求补时,CF=1

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

A、目的操作数最高位为0

B、目的操作数最高位为1

C、目的操作数为任意情况

D、无论什么情况都不可能相同

85、为了使MOV AX,VAR指令执行后,AX寄存器中的内容为4142H,下面哪一条数据定义会产生不正确的结果( C )

A、VAR DW 4142H

B、VAR DW 16706

C、VAR DB 42H,41H

D、VAR DW ‘AB’

86、假定用伪指令DATA DB 12H,34H定义了两个字节数据,现需要将数据12H取入寄存器AL,将数据34H 取入寄存器AH,能完成此功能的程序段是( D )。

A、 MOV AX,DATA

B、MOV SI,DATA

MOV AX,[SI]

C、LEA SI,DATA

D、MOV SI,OFFSET DATA

MOV AX,[SI] MOV AL,[SI]

MOV AH,[SI] MOV AH,[SI+1]

87、POP指令的操作数不能是( D )。

A、BP

B、[BX]

C、字变量的SUM

D、CS

88、汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法( B )

B、名字的第一个字符可以是字母、数字及、@、_ ;

C、名字的有效长度≤31 个字符;

D、在名字中不允许出现$。

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

A、AX=0032H

B、AX=00E0H

C、AX=03E0H

D、AX=0FFE0H

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

A、MOV AX,BUFl*BUF2

B、MOV AX,BUF1/BUF2

C、MOV AX,BUF1+ES:BUF2

D、MOV AX,BUF2-BUF1

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

A、STOSW

B、ADD AL,CL

C、NEG BX

D、INC DA[BX]

92、已知CALL BX执行前SP=100H,执行后SP的内容为( D )。

A、100H

B、102H

C、98H

D、0FEH

93、已知SP=100H,指令RET(远返回)执行后SP的值为( B )。

A、106H

B、104H

C、0FCH

D、0FAH

94、中断向量是指( B )。

A、中断向量表的地址

B、中断处理子程序的入口地址

C、被中断程序的入口地址

D、被中断程序的断点地址

95、使用 DOS 系统功能调用时,使用的软中断指令是( B )

A、INT 21

B、INT 10H

C、INT 16H

D、INT 21H

96、若将以 2000H 为段地址的整个段空间当作栈使用,是( B )。

A、0001H

B、0000H

C、FFFFH

D、FFFEH

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

A、INC WORD PTR [BX+SI]

B、INC CX,[SI+COUNT]

C、NEG BYTE PTR [BX]

D、ADD AX,B

98、NUM EQU 80H

DA DB 34H

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

A、0B4H

B、80H

C、34H

D、0

99、当程序顺序执行时,每取一条指令语句,IP 指针增加的值是( D )

A、1

B、2

C、3

D、由指令长度决定的

100、下列属于合法的指令是( D )。

A、MOV DS,ES

B、MOV [SI],[DI]

C、MOV AX,BL

D、MOV [DI],BL

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

A、AX,BX,CX,DX

B、BX,BP,SI,DI

C、SP,IP,BP,DX

D、CS,DS,ES,SS

102、下列传送指令中有语法错误的是( A )。

A、MOV CS,AX

B、MOV DS,AX

C、MOV SS,AX

D、MOV ES,AX

103、与 MOV BX,OFFSET VAR 指令完全等效的指令是( D )。

A、MOV BX,VAR

B、LDS BX,VAR

C、LES BX,VAR

D、LEA BX,VAR 104、在程序执行过程中,IP 寄存器中始终保存的是( B )

A、上一条指令的首地址C、正在执行指令的首地址

B、下一条指令的首地址D、需计算有效地址后才能确定地址

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

A、立即、直接、间接

B、直接、间接、立即

C、直接、立即、间接

D、不一定

106、语句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

107、 MOV AL,80H

MOV CL,2

SAR AL,CL

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

108、生成 EXE 之后用 Debug 加载后,查看寄存器内容如下:

ds=0c3e es=0c3e ss=0b4e cs=0b4f ip=0000

程序的起始地址的段地址是( A )

A、0c4e

B、0c3e

C、0c4f

D、0

109、用 MOV 指令将十进制数 89 以非压缩 BCD 码格式送入 AX,可使用的指令是( B )

A、MOV AX,89

B、MOV AX,0809H

C、MOV AX,89H

D、MOV AX,0809

110、下列关于堆栈的说法,错误的是(D )

A、以“先入后出”为原则。

B、栈区最高地址单元的前一个单元为栈底。

C、运行中 SP 寄存器动态跟踪栈顶位置。

D、压栈和弹出都是以字节为单位。

111、关于 8086/8088 微机系列,下列说法哪个是正确的(D )

A、一个存储单元由 16 个二进制位组成,简称字。

B、当存储一个字数据时,低字节放高地址位,高字节放低地址位。

C、在内存中,可以无限分配段,且段的大小不受限制。

D、段与段之间可以邻接,也可以重叠。

112、1KB 的存储器有( B )个存储单元

A、1000

B、1024

C、512

D、256

113、下列指令执行时出错的是(A)

A、ADD BUF1,BUF2

B、JMP DWORD PTR DAT [BX]

C、MOV AX,[BX+DI] NUM

D、TEST AL,08H

114、设 AX=8765H,DX=4321H,执行 CWD 指令后,DX 中的内容是( B )

A、4321H

B、0FFFFH

C、8000H

D、0001H

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

A、INC AL

B、ADD AL,1

DAA DAS

C、ADD AL,1

D、STC

DAA AAA

116、现有数据存储如图所示:

30100H

30101H

30102H

30103H

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

A、AL=20H

B、AL=38H

C、AL=00H

D、AL=41H

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

A、0041H

B、4100H

C、xx41H

D、41xxH

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

118、在下列指令的表示中,不正确的是(C)

A、MOV AL,[BX+SI]

B、JMP SHORT DONI

C、DEC [BX]

D、MUL CL

119、主程序和所调用的子程序在同一代码段中,子程序的属性应定义为( C )。

A、TYPE

B、WORD

C、NEAR

D、FAR

120、CPU 发出的访问存储器的地址是( B )

A、偏移地址

B、物理地址

C、逻辑地址

D、段地址

121、使计算机执行某种操作的命令是( C )

A、伪指令

B、标号

C、指令

D、助记符

122、计算机处理问题中会碰到大量的字符.符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的

是( D )码。

A、BCD 码

B、二进制码

C、十六进制码

D、ASCII 码

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

A、直接寻址

B、间接寻址

C、立即寻址

D、存储器寻址

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

A、SUB BX,BX

B、ROR AL,1

C、JNC Label

D、INT n

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

( C )

126、下列关于 8086CPU 的工作原理的描述错误的是( C )。

A、汇编程序员可以通过对各种寄存器中内容的修改实现对 CPU 的控制。

B、CPU 在访问内存时,采用“段地址*16+偏移地址”的形式给出要访问的内存单元的物理地址。

C、任意时刻,CS:IP 指向的内容即是此刻 CPU 正在执行的指令。

D、传送指令能够更改所有通用寄存器的内容。

127、16 位结构的 CPU 不一定具备的特性是( C )。

A、运算器一次最多可以处理 16 位的数据

B、寄存器的最大宽度为 16 位

C、地址总线为 16 根

D、寄存器和运算器之间的通路为 16 位

128、下列指令的书写正确的是( C )。

A、push al

B、mov cs:[0],ds:[10]

C、pop si

D、mov ds:[0],2

129、若栈顶的物理地址为 20100H,当执行完指令 PUSH AX 后,栈顶的物理地址为( D )

A、20098H

B、20102H

C、20100H

D、200FEH

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

A、直接、立即、间接

B、直接、间接、立即

C、立即、直接、间接

D、不一定

131、设 CL=05H,要获得 CL=0AH,可选用的指令是( A )

A、XOR CL,0FH

B、NOT CL

C、OR CL,0AH

D、AND CL,0FH

132、假设执行 ADD 指令后 AL=8CH,再执行 DAA 指令,AL 中的值是( A )

A、92H

B、0104H

C、74H

D、8CH

133、MOV AL,79H

ADD AL,B1H

上面指令执行后,设置的标志位 CF 和 ZF 的值是( D )

A、CF=0, ZF=1

B、CF=l, ZF=1

C、CF=0, ZF=0

D、CF=1, ZF=0

134、运算器能够完成( C )运算。

A、算术运算

B、逻辑运算

C、算术运算和逻辑运算

D、加减运算

135、下面不是输入设备的是( D )

A、键盘

B、扫描仪

C、光笔

D、绘图仪

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

A、6H

B、14H

C、5H

D、16H

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

A、IN AX,21H

B、MOV BL,AL

C、MOVSB

D、SHL AX,6

138、执行下面的程序段后,(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

139、8086 微处理器分成两大功能部件,即( A )

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

B、EU 和执行部件

C、总线接口部件和 BIU

D、以上都对

140、8086 微处理器的寄存器中,不属于通用寄存器的是( D )

A、AX

B、BL

C、CH

D、IP

141、结构化程序设计具有( D )三种基本结构。

A、顺序结构、选择结构、直到循环结构

B、顺序结构、条件结构、直到循环结构

C、顺序结构、选择结构、当型循环结构

D、顺序结构、选择结构、循环结构142、下面指令中影响状态位CF的指令是 ( D )

A、INC AX

B、DEC AX

C、NOT AX

D、NEG AX

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

JZ ZERO JZ ZERO

C、OR CX,CX

D、JCXZ ZERO

JZ ZERO

144、执行1号DOS系统功能调用后,从键盘输入的字符应存放在 ( A )

A、AL中

B、BL中

C、CL中

D、DL中

145、设数据定义如下:

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

146、设数据定义如下:

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

147、操作系统、编译程序、实时控制等软件多数是用( D )编写的。

A、机器语言

B、C 语言

C、高级语言

D、汇编语言

148、在寄存器寻址方式中,操作数在( C )中。

A、通用寄存器

B、堆栈

C、内存单元

D、段寄存器

149、下列指令中,不正确的是( C )

A、MOV 200H[BX+SI],AL

B、MOV [BX][SI][200H],AL

C、MOV [BX+BP][200H],AL

D、MOV [SI+BP+200H],AL

150、完成对字单元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]

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

A、NEG BX

B、NOT BX

INC BX

INC BX SUB AX,BX

152、判当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

153、下面指令序列执行后,正确的结果是 ( 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

154、下列指令能将 BX 的内容存入堆栈的指令是( B )

A、MOV [SP],BX

B、PUSH BX

C、POP BX

D、MOV SS:[SP],BX

155、能够将 BL 低 4 位清 0 的指令是( A )

A、AND BL,0F0H

B、OR BL,00H

C、OR BL,0F0H

D、AND BL,00H

156、现有数据存储如图所示:

30100H

30101H

30102H

30103H

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

A、AL=00H

B、AL=4OH

C、AL=01H

D、AL=79H

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

A、-0AH

B、-75H

C、-76H

D、8AH

A、AND

B、OR

C、XOR

D、NOT

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

A、8D89DH

B、86198H

C、8B698H

D、878C8H

160、指令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

161、CPU 访问外设,正确的输出指令的格式是( A )

A、OUT DX,AL

B、OUT 1000H,AL

C、IN DX,AX

D、OUT 10H,DX

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

A、AAA

B、DAA

C、AAS

D、DAS

163、除法指令中,对于双字除以字运算,商在( A )寄存器中。

A、AL

B、AH

C、AX

D、DX

164、MOV AX,COUNT[SI]的源操作数在( B )

A、CS段

B、DS段

C、SS段

D、ES段

165、汇编程序至少必须有一个( A )

A、CS段

B、DS段

C、ES段

D、SS段

166、LOOPNE指令当满足( C )时执行循环操作。

A、ZF=1且CX=0

B、ZF=1且CX≠0

C、ZF=0且CX≠0

D、ZF=0且CX=0

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

A、FAR

B、NEAR

C、SHORT

D、MIDDLE

168、串操作指令中,目的串通过( D )两个寄存器寻址:

A、DS,SI

B、DS,DI

C、ES,SI

D、ES, DI

169、将DX的内容除以2,正确的指令是( C )。

A、DIV 2

B、DIV DX,2

C、SAR DX,1

D、SHL DX,1

170、变量是存储单元的( A )

A、符号地址

B、段地址

C、偏移地址

D、常数

二、判断题(本大题共80小题,每小题2分,正确填“T”,错误填“F”)

2、MOV BX,[SI+DI] ( F )

3、MOV DI,[AX] ( F )

4、MOV AX,[BX+BP] ( F )

5、EU 和 BIU 这两个功能部件既可以协同工作又可以各自独立工作的。( T )

6、Intel(英特尔公司)推出 8086 微处理器是 8 位。( F )

7、汇编语言是用二进制代码表示的计算机能直接识别和执行的机器指令的集合。( F )

8、结构化程序设计由于采用了模块化与功能分解、自顶向下、分而治之的方法。( T )

9、有符号数 2 可以使用算术右移指令 SAR 实现。( T )

10、利用指令 OR AX,0FFFFH 可以将 AX 寄存器置 1。( T )

11、伪指令语句的功能在汇编阶段已经全部完成,所以不产生相应的目标代码。( T )

12、关系运算符既可用于比较数值表达式,又可用于比较地址表达式。( T )

13、MOV DX, [SP] ( F )

14、MOV AX,ES:[BX] ( T )

15、PUSH AL ( F )

16、字节通常用英文单词“Bit”来表示( F )。

17、目前广泛使用的Pentium计算机其字长为5个字节( F )。

18、奇偶标志位PF,当运算结果的低8位中有偶数个1时,被置为0。( F )

19、存储器中将8个相邻的二进制位作为一个单位,这种单位称为字节( T )。

20、微型计算机的字长并不一定是字节的整数倍( F )。

21、在汇编语言中当缺省为十进制数时,表示十六进制数要用H结尾。( T )

22、在DEBUG中,缺省值为十进制数。( F )

23、在标志IF=0时,CPU忽略所有的中断请求。( T )

24、POP 1234 ( F )。

25、PUSH A(A为字节单元)( T )。

26、执行LEA BX,TABLE与执行MOV BX,OFFSET TABLE效果一样( T )。

27、零标志位ZF,当运算结果为0时,被置为0。( F )

28、符号标志位SF,在运算结果为负时被置为1。( T )

29、汇编语言是用指令的助记符、符号地址、标号等符号书写程序的语言。( T )

30、XCHG CL,CH ( T )

31、LDS CH,[DI] ( F )

33、LEA DX,DI ( F )

34、通过ASSUME伪指令给段寄存器赋初值。( F )

35、MOV ES,BX ( T )。

36、MOV CS,BX ( F )。

37、IN AL,DX ( T )。

38、POPF AX ( F )。

39、两个数相等时进行转移可用JZ指令( T )

40、当PF=1时发生转移的条件转移指令为JPO ( F )

41、当执行LAHF和SHAF两条指令后,标志位不改变( F )。

42、CALL FAR PTR [SI+2] ( F )

43、宏的处理是在程序执行过程中处理的( F )

44、宏定义中的形式参数可以多于宏调用的实在参数(T )

45、ADD [SI],[BX] ( F )

46、ADD AX,100 (T )

47、ADD AX,BL ( F )

48、OUT DX,BX ( F )

49、IN AL,0A00H ( F )

50、ADD AX, CL ( F )

51、OR BX,[CX] ( F )

52、当PF=1时发生转移的条件转移指令为JPO ( F )

53、当X

54、满足指令JS LAB的执行条件,则表示上一条指令运算的结果为负数( T )

55、CALL WORD PTR[SI] ( F )

56、ADD [SI],100 ( F )

57、ADD ES,BX ( F )

58、INC [BX] ( F )

59、SUB BYTE PTR [SI],1 ( F )

60、DEC [BX],1 ( F )

61、CALL [BX] [SI] ( F )

62、使用宏指令,可以避免重复书写相同的语句序列,并减少目标代码长度。( F )

64、在一个过程中,至少要有一条过程返回指令 RET,并且 RET 指令只能书写在过程的最后。( F )

65、在循环结构中,每执行一次循环,都要依次执行其中的循环初始化、循环体和循环控制部分。( F )

66、调用 DOS 中断程序时,子功能号送入 BX。( F )

67、09H 功能是将指定的内存缓冲区中的字符串送屏幕显示。( T )

68、PUSH 5588H ( F )

69、MOV DS, 1720H ( F )

70、CALL AX ( F )

71、CALL [BX] ( T )

72、CALL NEAR PTR [SI] ( F )

73、微型计算机的字长并不一定是字节的整数倍( F )。

74、在汇编语言中当缺省为十进制数时,表示十六进制数要用H结尾。( T )

75、ADD AX, CL ( F )

76、AND AX,[DX] ( F )

77、MOV CS, 0600H ( F )

78、PUSH 074CH ( F )

79、在DEBUG中,缺省值为十进制数。( F )

80、在标志IF=0时,CPU忽略所有的中断请求。( T )

汇编语言程序设计试题A卷

陕西电子信息职业技术学院考试试卷(A) 2011至2012学年度第一学期 期末 班级: 09成教 课程: 汇编语言程序设计 题 号 一 二 三 四 五 合分人 分 数 总 分 (考试时间:120分钟 满分100分) 一、单项选择题(本大题共10小题,每小题2分,共20分) 1. 计算机硬件中最核心的部件是( )。 A. 运算器 B. 主存储器 C. CPU D. 输入 / 输出设备 2. 指令指针寄存器(IP )中存放的内容( )。 A. 指令 B. 指令地址 C. 操作数 D. 操作数地址 3. 寄存器间接寻址方式中,要寻找的操作数位于( )中。 A. 通用寄存器 B. 内存单元 C. 段寄存器 D. 堆栈 4. I/O 端口的编址方式分为统一编址和( )。 A. 独立编址 B. 选择编址 C. 设置编址 D. 控制编址 5. 汇编语言程序中可执行的指令位于( )中。 A. 数据段 B. 堆栈段 C. 代码段 D. 附加数据段 6. 循环结构设计中,要考虑的核心问题是( )。 A. 循环的控制 B. 选择循环结构 C. 设置循环参数初始值 D. 修改循环控制参数 7. 在汇编中用于管理和控制计算机相关功能的指令是( )。 A. 伪指令 B. 机器指令 C. 宏指令 D. 目标指令 班级 姓名 学号 — — — — — — — — — — — — — — — — 密 — — — — — — — — — 封 — — — — — — — — — — 线 — — — — — — — — — — — — — — — —

8. 识别中断源的方法包括查询中断和()共两种类型。 A. 指令中断 B. 故障中断 C. 矢量中断 D. 实时时钟中断 9. CPU与I/O设备之间需要传输的信息通常包括()、状态信息 和控制信息。 A. 编址信息 B. 格式信息 C. 中断信息 D. 数据信息 10. 一般情况下,汇编源程序应由数据段、()和代码段共三个逻 辑段组成。 A. 逻辑段 B. 堆栈段 C. 指令段 D. 类型段 二、名词解释(本大题共5小题,每小题4分,共20分) 11. 微处理器: 12. 寻址方式: 13. 伪指令: 14. 中断源:

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.调试过程中遇到的问题和解决的方法。

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

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 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

实验一基础汇编语言程序设计

实验一基础汇编语言程序设计 实验目的 1.学习和了解TEC-XP十六位机监控命令的用法; 2.学习和了解TEC-XP十六位机的指令系统; 3.学习简单的TEC-XP十六位机汇编程序设计。 实验内容 1.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容; 2.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。 3.学习联机使用TEC-XP教学试验系统和仿真终端软件。 实验要求 在使用该教学机之前,应先熟悉教学机的各个组成部分及其使用方法。 实验步骤 1.关闭电源,将大板上的COMl口与PC机的串口相连; 2.接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“l”或“2”,其它的设置一般不用改动,直接回车即可; 3.置控制开关为001110(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。其它实验相同; 4.按一下“RESET”按键,再按一下“START”’按键,主机上显示: 5.用R命令查看寄存器内容或修改寄存器的内容 1.用R命令查看寄存器或修改寄存器内容 1)在命令行提示符状态下输入: R↙;显示寄存器的内容 注:寄存器的内容在运行程序或执行命令后会发生变化。

2)在命令行提示符状态下输入: R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格, 也可有—个或数个空格 主机显示: 寄存器原值:xxxx 在后面输入新的值0036 再用R命令显示寄存器内容,则R0的内容变为0036。 2.用D命令显示存储器内容 在命令行提示符状态下输入: D 2000↙ 会显示从2000H地址开始的连续128个字的内容; 连续使用不带参数的D命令,起始地址会自动加128(即80H)。

汇编语言程序设计习题集111

16.提示下列指令序列执行后的正确结果是( A )。 MOV BX,OFFFCH MOV CL,2 SAR BX,CL A.3FFFH B.0FFFH C.0FFFCH D.0FFF5H 19. 指令SCAS的寻址方式是()。 A 源操作数为寄存器寻址,目的操作数为寄存器间接寻址 B 源操作数为寄存器间接寻址,目的操作数为寄存器间接寻址 C 源操作数为寄存器间接寻址,目的操作数为寄存器寻址 D 源操作数为寄存器寻址,目的操作数为寄存器寻址 22. 下列指令中不合法的指令是(C)。 A IN AX, 03F8H B MOV BX, AX C REP CMPSB D SHR BX, CL 23. 下列指令中正确的是()。 A MOV SS, 2400H B MOV SS, [2400H] C MOV SS, DS D MOV SS, SP 24. 下列指令中正确的是(A)。 A XCHG AH, AL B XCHG AL, 20H C XCHG DS, AX D XCHG SP, [20H] 29. 下列程序段执行完后,BX寄存器中的内容是( C )。 MOV CL, 3 MOV BX, 0B7H ROL BX, 1 ROR BX, CL A 002DH B 00EDH C C02DH D 000DH 30. 执行下列程序: MOV AX, 0 MOV BX, 1 MOV CX, 100 A: ADD AX, BX INC BX LOOP A HLT 执行后的结果为:(AX)= ( C ),(BX)= ( ). A 5050,99 B 2500,100 C 5050,101 D 2550,102 35. 逻辑位移指令SHR用于(D),而算术位移指令SAR用于带符号数除2。

汇编语言程序设计

汇编语言程序设计 一、选择题 (共72题) 1、 用于指针及变址寄存器的有()。 A、 AX,BX,CX,DX B、 SP,BP,IP C、 CS,DS,SS D、 PSW 考生答案:B 2、 完成把汇编语言源程序模块转换为目标模块的程序是()。 A、 编辑程序 B、 汇编程序 C、 连接程序 D、 调试程序 考生答案:B 3、 指令JMP FAR PTR DONE中的寻址方式属于()。 A、 段内转移直接寻址 B、 段内转移间接寻址 C、 段间转移直接寻址 D、 段间转移间接寻址 考生答案:C 4、 对于下列程序段: AGAIN:MOV AL,[SI]

MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用()指令完成同样的功能。 A、 REP MOVSB B、 REP LODSB C、 REP STOSB D、 REPE SCASB 考生答案:A 5、 在程序执行过程中,IP寄存器中始终保存的是()。 A、 上一条指令的首地址 B、 下一条指令的首地址 C、 正在执行指令的首地址 D、 需计算有效地址后才能确定地址 考生答案:B 6、 在汇编语言程序的开发过程中使用宏功能的顺序是()。 A、 宏定义,宏调用 B、 宏定义,宏展开 C、 宏定义,宏调用,宏展开 D、 宏定义,宏展开,宏调用 考生答案:C 7、 CPU要访问的某一存储单元的实际地址称()。 A、 段地址

偏移地址 C、 物理地址 D、 逻辑地址 考生答案:C 8、 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 考生答案:C 9、 完成对CL寄存器的内容乘以2的正确操作是()。 A、 ROL CL,1 B、 MUL 2 C、 SHL CL,1 D、 SHR CL,1 考生答案:C 10、 检查两个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP A L,BL”指令后应跟的分支指令是()。 A、 JE LOP1 B、 JAE LOP1 C、 JC LOP1 D、 JGE LOP1 考生答案:B 11、 已知变量VAR为字型,则TYPEVAR=()。

新版汇编语言程序设计钱晓捷第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〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

汇编语言程序设计A卷答案

2011级汇编语言程序设计课程试题(A卷答案) 一、填空题(毎空1分,共15分) 1.汇编语言程序/汇编语言源程序,ASM,平展(flat) 2.执行性语句(硬指令),说明性语句(伪指令) 3.立即数,寄存器,存储器 4.导入,动态连接 5.PUSH EBX 6.嵌入汇编,模块连接 7.8,6,16 二、判断题(每题1分,共10分) 1.错2.对3.对4.对5.错6.对7.对8.错9.对10.错 三、按下面要求写出相应的数据定义语句或汇编指令(变量名可任意指定)(每小题2分,共12分) 1.string byte ‘assembly language’ 2.var word 20 dup (?) 3.str equ 4.dvar dword 14h 5.add [ebx+esi],eax 6.xor eax,eax 或sub eax,eax 四、程序分析与阅读题 1.(每空1分,共8分) EAX=87654321h EBX=12345678h EAX=876543a9h CF=1 OF=0 ZF=0 SF=1 PF=1 2.(每小题2分,共8分)每一小题指出错误得1分,写出正确指令得1分 ①操作数类型不一致add eax,ebx 或add ax,bx ②两个操作数同时是内存单元的数mov eax,var2 mov var1,eax ③push指令不支持字节操作push ax 或push eax ④两个操作数类型不明确mov byte ptr [ebx],100 或mov word ptr [ebx],100 或mov dword ptr [ebx],100 3.(每小题2分,共4分) ①xchg ebx,[edi] 或xchg [edi],ebx ②movsb

51汇编语言程序设计

第四章MCS-51汇编语言程序设计 重点及难点: 单片机汇编语言程序设计的基本概念、伪指令、单片机汇编语言程序的三种基本结构形式、常用汇编语言程序设计。 教学基本要求: 1、掌握汇编语言程序设计的基本概念; 2、掌握伪指令的格式、功能和使用方法; 3、掌握顺序结构、分支结构和循环结构程序设计的步骤和方法; 4、掌握常用汇编语言程序设计步骤和方法。 教学内容 §4.1汇编语言程序设计概述 一、汇编语言的特点 (1)助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。 (2)使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。 (3)汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。 (4)汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用;但是掌握了一种计算机系统的汇编语言后,学习其他的汇编语言就不太困难了。 二、汇编语言的语句格式 [<标号>]:<操作码> [<操作数>];[<注释>] 三、汇编语言程序设计的步骤与特点 (1)建立数学模型 (2)确定算法 (3)制定程序流程图 (4)确定数据结构 (5)写出源程序 (6)上机调试程序 §4.2伪指令 伪指令是程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。 MCS- 51常见汇编语言程序中常用的伪指令:

第四章MCS-51汇编语言程序设计91 1.ORG (ORiGin)汇编起始地址命令 [<标号:>] ORG <地址> 2.END (END of assembly)汇编终止命令 [<标号:>] END [<表达式>] 3.EQU (EQUate)赋值命令 <字符名称> EQU <赋值项> 4.DB (Define Byte)定义字节命令 [<标号:>] DB <8位数表> 5.DW (Define Word)定义数据字命令 [<标号:>] DW <16位数表> 6.DS (Define Stonage )定义存储区命令 [<标号:>] DW <16位数表> 7.BIT位定义命令 <字符名称> BIT <位地址> 8.DA TA数据地址赋值命令 <字符名称> DATA <表达式> §4.3单片机汇编语言程序的基本结构形式 一、顺序程序 [例4-1]三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、5414和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。 MOV R0 ,# 52H ;被加数的低字节地址 MOV R1 ,# 55H ;加数的低字节地址 MOV A ,@ R0 ADD A ,@ R1 ;低字节相加 MOV @ R0 , A ;存低字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;中间字节带进位相加 MOV @ R0 , A ;存中间字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;高字节带进位相加 MOV @ R0 , A ;存高字节相加结果 CLR A

汇编语言程序设计

汇编语言程序设计 实验报告 实验名称上机过程及顺序结构与分支结构程序设计实验班级 学号 姓名 日期2017年10月26号 成绩 评阅人 软件学院

一、实验目的与意义 理解并熟练掌握汇编语言程序设计过程中的编辑、汇编、链接和调试等各个步骤,提高对汇编课程内容的理解和汇编语言的掌握,通过上机练习加深对课程内容的理解和掌握。通过汇编语言编制的程序上机调试、运行检验程序设计是否正确。熟悉和掌握编辑、汇编、连接和调试四个实用程序的使用方法,掌握调试程序中的几个常用命令的使用方法。熟悉其基本的指令操作,debug调试操作命令以及分支结构、顺序结构和循环结构的程序设计。 二、实验环境 操作系统:Microsoft Windows8 集成环境:Masm for Windows 上机地点:信息楼B405教室 三、实验的预习内容 预习的主要内容: 1. 使用DEBUG命令的方法; 2. 熟悉掌握从理论上定义数据的类型(即DB,DW,DD,); 3. 分支结构和顺序结构的步骤以及相关的指令; 4. 常用的标志位状态及相应的作用; 实验思路: 在对题目进行分析后,分析出解题方法,并做出与实验思路相对应的程序框图。依照程序框图的内容输入相对应的代码,最终在调试代码后,发现并解决一系列的汇编语言错误。进一步优化算法。实验之前必须了解十进制、十六进制和ASCII码之间的转换。预习查表法相关命令,掌握顺序程序的结构,从键盘输入数据的命令及显示到屏幕上的命令。 实验一: 题目1:将程序编辑、汇编、连接并通过集成环境中的debug调试,观察运行结果;用E命令修改指定地址的数据,再用G命令执行程序查看变化,用A 命令将加法指令修改成减法指令,再将其编译运行,查看寄存器值变化的异同。 题目2:分别用DB、DW和DD数据段9H,0FAH,41H,27H,编译链接之后生成exe文件,再用debug的r命令找到数据段地址,用d命令指定数据段地址,观察汇编后在机器内部对应的存储情况。 实验二: 先设置数据段地址和堆栈段地址;设置堆栈段指针;读取一个字符然后存储在AL中;用BX来存储AL中字符对应的数值;将BX中的值作为偏移地址;并在数据段中查找对应字符串;最终输出结果结束程序。 实验三: 先初始化数据段地址与堆栈段地址;设置堆栈段指针;然后将数据段中的data1放入AL中;读取数据段中的data2并判断data2是否大于0;然后读取数

汇编语言程序设计方案考试考试集

汇编语言程序设计方案考试考试集第四章汇编语言程序设计习题集 一、单项选择题 1.用高级语言编写的程序()。 A.只能在基本种计算机上运行 B.无需经过编译或解释,即可被计算机直接执行 C.具有通用性和可移植性 D.几乎不占用内存空间 2.一般地,我们将计算机指令的集合称为()。A.机器语言 B.汇编语言 C.模拟语言 D.仿真语言 3.我们通常所说的“裸机”指的是()。 A.只装备有操作系统的计算机 B.不带输入输出设备的计算机 C.未装备任何软件的计算机 D.计算机主机暴露在外 4.计算机的软件系统一般分为()两大部分。 A.系统软件和应用软件 B.操作系统和计算机语言 C.程序和数据 D.DOS和Windows 5.计算机系统软件中的汇编程序是一种()。 A.汇编语言程序

B.编辑程序 C.翻译程序 D.将高级语言转换成汇编程序的程序 6.假设V1和V2是用DW定义的变量,下列指令中正确的是:() A.MOV V1,20H B.MOV V1,V2 C.MOV AL,V1 D.MOV2000H,V2 7.PC机所使用的标准键盘向主机发送的代码是() A.ASCII码 B.扫描码 C.BCD码 D.格雷码 8.8086CPU中断号为8的中断矢量存放在()。 A.0FFFFH:0008H B.0000H:0008H C.0000H:0020H D.0020H:0000H 9.已知变量VAR为字型,则TYPE VAR=()。 A.1 B.2 C.3 D.4 10.汇编语言源程序经MASM汇编后可直接生成的文件是()。

B..CRF C..EXE D..OBJ E..ASM F..MAP 11.段定义语句以(B)语句结束。 A.END B.ENDS C.ENDP D.ENDM 12.若主程序段中数据段名为DA TA,对数据段的初始化操作应为()。 A.MOV AX,DATA B.MOV AX,DA TA MOV ES,AX MOV DS,AX C.PUSH DS D.MOV DS,DATA 13..EXE文件产生在()之后。 A.汇编 B.编辑 C.用软件转换

汇编语言程序设计 实验1

汇编语言程序设计实验1——汇编程序与调试器的使用 一、实验目的 熟悉DOS操作系统环境下的汇编程序MASM的使用、掌握DEBUG的基本命令及其功能。 二、实验内容 1.编写一个小程序,从键盘接收一个大写字母,存放到指定的内存单元BUFF1,并转换其为对应的小写字母,存放到指定的内存单元BUF2中。上机编辑、汇编、连接并运行该程序。 2. 输入源程序、汇编、连接并执行相应程序,并用DEBUG 实现以下操作: (1)用反汇编命令查看相应程序的可执行语句序列,分析其与源程序的异同,查看相应程序占用内存单元的字节数。 (2)用数据查看命令查看执行前的数据单元的内容。 (3)分别用P命令和T命令逐步执行程序,分析这两种方式的区别,记录“转换为小写字母”指令执行后的状态字。 (4)查看程序执行后数据单元的内容。 (5)查看0000:0000 起始的32个单元的内容。 (6)用汇编命令编写一个简单加法程序“3+5=8”,加数和结果分别存在内存单元NUM1、NUM2、NUM3中。 三、实验要求 学生要提前做好相关内容的预习(包括源程序的分段组织、DEBUG的系列命令等),熟悉被调试的程序(学生应当在本实验中自行设计一些汇编语言程序,其目的是熟悉相关编程环境的特性),并对程序的测试/调试过程(包括所用的编程环境命令、DEBUG命令等)作出详细计划。 认真完成实验,正确记录各项数据,记录实验过程中出现的问题及其解决过程。 四、实验报告 写出各实验程序的测试/调试的详细过程(包括DEBUG命令的使用等),特别是要写出在DEBUG状态下编写、运行程序的过程。要系统给出各程序在测试/调试过程中所遇到的问题、解决问题的方法与途径。要对程序在测试/调试过程中的问题进行分析,对相关的执行结果进行分析。

汇编语言程序设计

实验四程序设计 一、实验目的 学习数据传送指令和算术运算指令的用法;掌握数据定义伪指令的格式,会用DEBUG 中的D命令观察DB、DW、DD存储数据的格式;熟悉汇编语言的基本框架,掌握编写汇编语言程序的基本方法。 二、实验题 1、已知当前数据段中DADT1和DADT2开始分别存放若干字节数据,数据个数相同,编制程序检查两数据块中数据是否相同,若相同,则在屏幕上显示1,否则显示0。 【参考程序如下】 DSEG SEGMENT DATA1 DB 'ABCDEFG3' DATA2 DB 'ABCDEF3G' CNT DW 8 DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START:MOV AX,DSEG MOV DS,AX MOV DL,31H LEA SI,DATA1 LEA DI,DATA2 MOV CX,CNT DEC SI DEC DI AGAIN:INC SI INC DI MOV AL,[SI] CMP AL,[DI] LOOPZ AGAIN JZ DISP DEC DL DISP: MOV AH,2

INT 21H MOV AH,4CH INT 21H CSEG ENDS END START 阅读程序,理解循环程序结构及执行过程,并改成串指令实现。 2 编写程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。 三、实验报告 写出程序清单,记录运行结果。 改写串指令实现: DSEG SEGMENT DATA1 DB'ABCDEFG3' DATA2 DB'ABCDEF3G' CNT DW8 DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START:MOV AX,DSEG MOV DS,AX MOV ES,AX MOV DL,31H LEA SI,DATA1 LEA DI,DATA2 MOV CX,CNT CLD

汇编语言程序设计——知识点-v3.0

第一章 1、什么是汇编语言? 2、汇编语言程序设计过程:编辑源程序,编译(汇编),连接,运行调试 3、汇编语言特点?与机器语言一一对应,直接操作硬件,高效率(空间和时间,运行速度快,目标代码短,占用存储空间少) 4、数制转换 第2章8086计算机组织结构 1、计算机硬件系统组成:CPU、存储器、输入输出设备。 2、CPU组成:运算器、控制器、寄存器,运算器和控制器由芯片设计时设计好,不可做任何改动,程序设计员仅能在程序里使用寄存器,寄存器都有相应的名字,如AX,能在程序里直接使用寄存器是汇编语言区别于高级语言的最重要特点,这样就可以直接控制硬件系统。 3、总线结构:数据总线、地址总线、控制总线。数据总线分8位、16位、32位和64位等,多少位机就是以数据总线来划分,比如8位机、32位机。8086机是16位机,但地址总线是20位,地址总线数量决定了内存寻址空间的大小,如8086有20位地址线,那么寻址空间是:220=210*1K=1M,8086最大寻址空间为1MB,即地址范围:00000H~FFFFFH。控制总线主要传送控制信息,如读写操作,读写操作的主体是CPU,读操作是指CPU从内存或外设读取数据,写操作是指CPU把数据写到内存或外设中。 4、存储器:存储器的最小单元是字节(Byte,由8个位组成),字节的多少就是存储器的容量。每一个字节单元都有一个唯一的编号,这个编号就是字节单元的地址,此地址就是物理地址,对于8086而言,编号的形式为:XXXXXH,如85421H。如果要读写存储器,必须知道某一个字节单元的地址。多个字节单元可以组合成更大的单元(数),比如2个字节单元组合成一个字(Word),4个字节单元组合成一个双字(Double Word)等,规定:这个组合后的大单元是以最小字节单元地址为自己的地址。如85421H字节单元内容为12H,85422H 字节单元内容为34H,那么以85421H地址的字单元的内容就是3412H。 地址取最小字节单元的地址为大单元的地址。 内容排序按照“高高低低”原则:高字节放在高地址里,低字节放在低地址里。 详细请参看2.3节(P30页) 5、8086CPU寄存器 (1)通用类:AX(AH,AL)、BX(BH,BL)、CX(CH,CL)、DX(DH,DL) (2)段寄存器类:CS、DS、ES、SS (3)与偏移地址相关类:SI、DI、SP、BP (4)特殊类:IP、FLAGS 所有寄存器都是16位大小,通用类的16位又可看成2个8位的寄存器组成,区分为高8位(High)和低8位(Low),因此取名为AH和AL,其他类似。 CS:存放代码段段地址,DS:存放数据段段地址,SS:存放堆栈段段地址,ES:存放数据附加段段地址,一般作为DS的辅助使用,比如在一段程序里需要用到2个不同数据段的数据时,其中一个数据段段地址存放在DS中,另一个存放在ES中。 SI、DI:一般用于变址寻址方式,如[BX+SI]、[BX+DI], SP:堆栈段中堆栈栈顶的偏移地址,不可修改,由SS:SP逻辑地址始终指向堆栈的栈顶。 详细参看2.3.2,P32页 BP:一般也用于堆栈,可以作为SP的备份,通常也是用SS:BP逻辑地址表示,BP可以随意修改,因此通过SS:BP可以访问堆栈的任何地方。此外,BP还与BX一样,可以作为基地址

汇编语言程序设计练习题

汇编语言程序设计练习题 一、字符与串处理类 1.逆序输出字符串“BASED ADDRESSING”。 2.试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。 3.编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。 4.从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果。 5.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。)放在STRING中,试编制一个程序测试字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置置0。 6.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。),将其中的小写英文字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。 7.试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空格符不存入),直到接收到第二个空格符时退出程序。 8.试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等则显示“MATCH”, 若不相同则显示“NO MATCH”。 9.试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则显示“NO MATCH”。 10.试编写一段程序,要求在长度为100H字节的数组中,找出大于61H的无符号数的个数并存入字节单元UP中,找出小于2FH的无符号数的个数并存入字节单元DOWN中。 11.在内存区域0B800:0000-0B800:0FFFF(都是16进制数)内查找首地址为SOURCE的串(SOURCE的首字节为串长度),如果找到,则把AL的第0位置0,否则将该位置置1。 12.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中。 13.在附加段中,有一个首地址为LIST和未经排序的字数组。在数组的第一个字中,存放着该数组的长度,数组的首地址已存放在DI寄存器中,AX寄存器中存放着一个数。要求编制一个程序:在数组中查找该数,如果找到此数,则把它从数组中删除。 二、数字输入输出类 1. 试编制一个程序,把BX寄存器内的二进制数以十六进制数的形式在屏幕上显示出来。 2. 试编制一个程序,把BX寄存器内的二进制数以八进制数的形式在屏幕上显示出来。 3. 试编制一个程序,把BX寄存器内的二进制数以十进制数的形式在屏幕上显示出来。 4.从键盘上输入2个一位数,求出它们的和(假设和不超过1位)。 5.试编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数。 6.试编写一段程序,从键盘接收一个0-65535间的十进制无符号数,并在终端上显示与它等值的二进制数。 7.试编写一段程序,从键盘接收一个-32768-32767间的十进制有符号数,并在终端上显示与它等值的二进制数。 8.编写一个程序,从键盘输入一个0~65535之间的10进制无符号数,然后以16进制

汇编语言程序设计A卷

2011级 汇编语言程序设计 课程试题(A卷) 1.用汇编语言书写的程序叫做,MASM要求该文件的扩展名是,编写32位Windows应用程序应选择存储模型。2.汇编语言语句有两种,分别是和。3.除外设数据外的数据寻址方式有3类,分别称为、 和寻址。 4.进行Windows应用程序开发时,需要库文件,执行该应用程序时,则需要对应的库文件。 5.汇编语言与C和C++语言有两种混合编程方法,分别是和 。 6.IA-32处理器有个32位通用寄存器,有个段寄存器,段寄存器都是位的。 分数评卷人 二、判断题(每题1分,共10分) 1.Windows的模拟DOS环境与控制台环境是一样的。() 2.“TYPE DX”的结果是一个常量,等于2。()3.数据扩展的基本原则是位数加长,数值大小不变。() 4.指令的相对寻址都是近转移。()5.JA和JG指令的条件都是“大于”,所以是同一个指令的两个助记符。() 6.CALL指令的执行必然影响堆栈指针ESP。()

7.在宏定义中,LOCAL伪指令声明标识符;而在过程定义中,LOCAL 伪指令用于分配局部变量。()8.指令“OUT DX,AX”的两个操作数均采用寄存器寻址方式。() 9.MASM32软件包既支持32位图形界面应用程序的开发,也支持控制 台应用程序开发。()10.程序终止执行也就意味着汇编结束,所以两者含义相同。 () 分数评卷人 三、按下面要求写出相应的数据定义语句或汇 编指令(变量名可任意指定)(每小题2分, 共12分) 1.定义字符串变量:assembly language 2.定义20个未赋值的字变量 3.定义符号常量str,表示字符串assembly language 4.定义用十六进制数表示的双字变量:20 5.用寄存器EBX和ESI的基址变址寻址方式把存储器的一个双字与EAX寄存器的内容相加,并把结果送回存储器中。用一条汇编指 令完成该功能。 6.用一条汇编指令实现将寄存器EAX和标志位CF、OF同时清零。 分数评卷人 四、程序分析与阅读题(共 28分) 1.根据数据段定义的变量,分析下列指令的运行结果并填在空格里

汇编语言程序设计

《汇编语言程序设计》课程教学大纲 学时:32 学分:2 理论学时:24 实验学时:8 面向专业:电科、电信、通信课程代码:B2700009 先开课程:C语言程序设计课程性质:必修 执笔人:王艳春审定人:陈龙猛、张金政 第一部分:理论教学部分 一、说明 1、课程的性质、地位和任务 本课程属于专业基础课,是电科、电信和通信专业学生必修的核心课程之一,是进一步学习微机原理、操作系统等课程的基础。掌握它有助于提高学生对计算机系统的设计、研究、开发和应用能力。汇编语言是一种面向机器、实践性很强的程序设计语言,必须结合一种实际的计算机来组织教学。因此,本课程选择最广泛使用的IBM PC作为具体的机型来介绍。通过课堂教学和上机实践,培养学生用汇编语言进行编程的思路、方法,养成良好的程序设计习惯,并了解底层I/O 驱动软件的编程方法,熟悉源程序汇编、链接和调试运行的步骤和方法,掌握dos、BIOS功能的调用方法及使用debug工具的调试手段,为后续课的学习打下扎实的基础。 2、课程教学和教改基本要求 课程的目的与教学基本要求:本课程主要介绍汇编语言和宏汇编的基本概念,80X86CPU的指令系统和寻址方式;介绍汇编语言程序格式、伪操作和上机全过程。通过实际例子,详细叙述顺序、分支、循环、子程序等基本程序结构以及程序设计的基本方法和技巧。学习这门课程,应达到以下几个要求: ①掌握汇编语言的基本理论知识和有关概念;掌握用汇编语言编写源程序的基本原则、方法和技巧; ②具有阅读,分析汇编语言程序的能力; ③通过上机实践,能够熟练地掌握汇编语言程序的编辑、汇编、连接、运行 过程及debug工具的调试手段。

实验一 汇编语言程序设计1

实验一汇编语言程序设计(1)一、实验目的 1.熟悉Pentium微处理器指令系统和寻址方式 2.掌握汇编语言程序的编程与调试方法 二、实验内容 1. 编程在显示器上输出显示HELLO TITLE 'HELLO.EXE---PRINT HELLO ON SCREEN' CR EQU 0DH LF EQU 00H DSEG SEGMENT 'DA TA' MESSAGE DB CR, 'HELLO!', CR, LF, '$' DSEG ENDS CSEG SEGMENT PUBLIC 'CODE' ASSUME CS:CSEG,DS:DSEG PRINT PROC FAR PUSH DS SUB A X,AX PUSH AX MOV AX, DSEG MOV DS, AX MOV DX, OFFSET MESSAGE MOV AH, 09h INT 21H RET PRINT ENDP CSEG ENDS

2. 在DATA1处建立10个字节,各数加1后移到DATA2处。DA TA SEGMENT DATA1 DB 0H,01H,02H,03H,04H,05H,06H,07H,08H,09H DATA2 DB 10 DUP (00H) DA TA ENDS CODE SEGMENT START: MOV AX , DATA MOV DS , AX MOV CX,10 LEA SI, DA TA1 LEA DI, DATA2 NEXT: MOV AL,[SI] INC AL MOV [DI],AL INC SI INC DI LOOP NEXT MOV AH.4CH INT 21H CODE ENDS END START

汇编教程汇编语言编程实例

汇编语言编程实例一这一章,我们要把我们已学的知识集合起来。具体来讲,我们来写一个使用ODBC APIs的程序.为简单起见,这个程序中我使用Microsoft的Access数据库(Microso ft Access 97) . 注意:如果你使用的windows.inc 是1.18及其以下版本,在开始编译之前要修改其中的一个小bug.在windows.inc中查找 "SQL_NULL_HANDLE",将得到下面这行: SQL_NULL_HANDLE equ 0L 将0后面的"L"删除,象这样: SQL_NULL_HANDLE equ 0 这个程序是一个基于对话框的程序,有一个简单的菜单.当用户选择"connect"时,它将试图连接test.mdb数据库,如果连接成功,将显示由ODBC驱动程序返回的完整连接字符串.接下来,用户可选择"View All Records"命令,程序会使用listview control来显示数据库中的所有数据.用户还可以选择"Query"命令来查询特定的记录.例子程序将会显示一个小对话框提示用户输入想找的人名.当用户按下OK钮或回车键,程序将执行一个查询来查找符合条件的记录.当用户完成对数据库的操作时,可以选择"disconnect"命令与数据库断开连接. 现在看一下源程序: .386 .model flat,stdcall include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\odbc32.inc include \masm32\include\comctl32.inc include \masm32\include\user32.inc includelib \masm32\lib\odbc32.lib includelib \masm32\lib\comctl32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.lib IDD_MAINDLG equ 101 IDR_MAINMENU equ 102 IDC_DATALIST equ 1000 IDM_CONNECT equ 40001 IDM_DISCONNECT equ 40002 IDM_QUERY equ 40003 IDC_NAME equ 1000 IDC_OK equ 1001 IDC_CANCEL equ 1002 IDM_CUSTOMQUERY equ 40004 IDD_QUERYDLG equ 102 DlgProc proto hDlg:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD

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