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

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

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

汇编语言程序设计试题

一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2分,共50分)

1.CPU发出的访问存储器的地址是( )

A.偏移地址

B.物理地址

C.逻辑地址

D.段地址

2.使计算机执行某种操作的命令是( )

A.伪指令

B.标号

C.指令

D.助记符

3.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( )

A. 1400H

B. 77F8H

C. 0000H

D. 0FFFFH

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

A. BCD码

B.二进制码

C.十六进制码

D.ASCII码

5.下列关于8086CPU的工作原理的描述错误的是( )。

A.汇编程序员可以通过对各种寄存器中内容的修改实现对CPU 的控制。B.CPU在访问内存时,采用“段地址*16+偏移地址”的形

式给出要访问的内存单元的物理地址。

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

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

6.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是()

A.12C5BH B.12C59H C.12B6BH D.12BFEH

7. 16位结构的CPU 不一定具备的特性是( )。

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

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

C. 地址总线为16根

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

8. 下列指令的书写正确的是()。

A. push al

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

C. pop si

D. mov ds:[0],2

9.在DEBUG工具中,显示寄存器内容的命令是()。

A. G

B. D

C. T

D. R

10. 能够将ax中的内容送到内存0000:0200H处的指令序列是()。

A.

mov ds,0

mov bx,200h

mov [bx],ax

B.

mov ax,200h

mov ds,ax

mov bx,0

mov [bx],ax

C.

mov ax,20h

mov ds,ax

mov bx,0

mov [bx],ax

D.

mov bx,20h

mov ds,bx

mov bx,0

mov [bx],ax

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

A. 20098H

B. 20102H

C. 20100H

D. 200FEH

12.执行下列指令后AL寄存器中的值是()

MOV AL, 0BFH

OR AL, 0FCH

A. 0ACH

B.0FFH

C. 0DCH

D. 0BBH

13. 已知(DS)=2000H,(BX)=1256H,(SI)=528FH,则执行指令JMP BX后,IP 寄存器的内容是()。

A. 1256H

B. 2000H

C. 3256H

D. 528FH

14.在程序执行过程中,IP寄存器中始终保存的是()

A.上一条指令的首地址B.下一条指令的首地址

C.正在执行指令的首地址 D.需计算有效地址后才能确定地址

15.8088/8086存储器分段,每个段不超过()

A.64K个字 B.32k个字节

C.64k个字节 D.1兆个字节

16.关于伪指令相关描述错误的是()。

A.伪指令没有对应的机器码,只用来指导汇编过程的。

B.伪指令由编译器处理,在程序中可有可无。

C.编译器要通过执行伪指令才能对源程序进行相应的处理操作,完成编译工作。D.伪指令是汇编语言源程序不可缺少的组成部分。

17.下列关于堆栈的说法,错误的是()

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

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

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

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

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

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

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

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

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

19.1KB的存储器有( )个存储单元?

A.1000 B. 1024 C. 512 D. 256

20. 下列程序中,出现逻辑错误的是( )。

A. assume cs:code

code segment

mov ax,2

add ax,ax

mov ax,4c00h

int 21h

code

end

B. assume cs:code code segment mov ax,2

add ax,ax

code ends

end

C. aume cs:code code segment mov ax,2

add ax,ax

mov ax,4c00h

int 21h

code ends

end

D. assume cs:code code segment mov ax,2

add ax,ax

mov ax,4c00h

int 21h

code ends

21. 对于如下程序assume cs:code code segment start:mov ax,code mov ds,ax

mov ax,0020h

mov es,ax

mov bx,0

s:mov al,[bx]

mov es:[bx],al

inc bx

loop s

mov ax,4c00h

int 21h

code ends

end

下列说法正确的是( )。

A.指令mov ax,code改为mov ax,start对程序要实现的功能没有任何影响。B.程序不能通过编译,因为在loop指令之前,没有对寄存器cx进行设定。C.程序实现的功能是将程序的所有指令复制到内存中以0:200h为起始地址的一段内存空间中。

D.程序实现的功能是用内存中以0:200h为起始地址的一段内存空间中的数据将程序的所有指令覆盖。

22.在Intel8086环境下,下列说法合理的是()。

A.汇编语言程序载入内存后处于64K空间以外的数据和指令将无法使用和执行。

B.一个数据段命名为data,此标号代表这个数据段在内存中的起始地址。C.如果载入的程序没有返回语句,那么当程序代码执行完毕,将继续读取后续内存空间存储的指令到CPU内部作为指令执行下去,直到遇到返回指令为止。D.用DW定义进行的数据,只能够以字为单位访问。

23.若将以2000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是( )。

A. 0001H

B. 0000H

C. FFFFH

D. FFFEH

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

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

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

A. 0c4e

B. 0c3e

C. 0c4f

D. 0

25. 在Intel8086环境下,对指令mov ax,[bx]描述错误的是( )。

A.指令中,源操作数的段地址默认为ds中的内容

B.指令中,源操作数的偏移地址为bx中的内容

C.指令执行后,(al)=((ds)*16+(bx)),(ah)=((ds)*16+(bx)+1)

D.指令执行后,((ds)*16+(bx))=(al),((ds)*16+(bx)+1)=(ah)

二、填空题(每空2分,共30分)

1.通常所说的计算机系统包括___硬件_____和___软件_____两大部分。

2.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是__DS______、____SS____、_____CS___、__ES____。

3.若要源程序从标号START开始执行,源程序结束伪指令的格式为 __END START______。

4.8086的地址总线有20根,寻址范围为____1M _______字节。

5.汇编语言源程序需经过___编译_________程序汇编,__连接_______程序连接才能生成可执行文件。

6.十进制数369转换成8位二进制数为01110001B________,转换成对应的十六进制数为__71H________。

7. 存储器某单元的地址表示为2314H:4132H,则它的偏移地址=__4132H_______,物理地址=__27272H________。

8. mov cx,4

s: mov ax,[bx]

add bx,2

loop s

上面指令序列,当指令第一次执行到add bx,2时cx的值__5___。

三、阅读程序题(每题5分,共10分)

1.已知21000h处字单元的内容为 BE00H,对于如下程序:

(1) mov ax,2000h

(2) mov ds,ax

(3) mov bx,1000h

(4) mov ax,[bx]

(5) inc bx

(6) inc bx

(7) mov [bx],ax

(8) inc bx

(9) inc bx

(10) mov [bx],ax

(11) inc bx

(12) mov [bx],al

(13) inc bx

(14) mov [bx],al

程序执行后,内存中字单元2000:1005中的内容为__0000H____。

2. assume cs:code

code segment

start: mov ax,3

jmp s1

s: mov bx,0

mov ax,bx

s1: mov cx,3

s2: add ax,2

loop s2

s3: mov ax,4c00h

int 21h

code ends

end s

上面代码执行到s3处的指令之前,ax的值是_6____。

四、完善程序题(每题5分,共10分)

1.完善下列程序:实现一次用内存0:0--0:15单元中的数据改写程序中定义的数据。

assume cs:codesg

codesg segment

dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h

start:mov ax,0

mov ds,ax

mov bx,0

mov cx,8

mov ax,ds:[bx]

mov cs:[bx],ax___________

add bx,2

loop s

mov ax,4c00h

int 21h

codesg ends

end start

2.完善下列程序:实现计算123与456的乘积。

assume cs:code

code segment

mov ax,0

Mov cx,567

S:add ax,234

Loop s

mov ax,4c00h int 21h

code ends

end

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

汇编语言程序设计题目以及答案[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.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数: (1) 369 (2) 10000 (3) 4095 (4) 32767 答:(1) 369=1 0111 0001B=171H (2) 10000=10 0111 0001 0000B=2710H (3) 4095=1111 1111 1111B=FFFH (4) 32767=111 1111 1111 1111B=7FFFH 1.2将下列二进制数转换为十六进制数和十进制数: (1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111 答:(1) 10 1101B=2DH=45 (2) 1000 0000B=80H=128 (3) 1111 1111 1111 1111B=FFFFH=65535 (4) 1111 1111B=FFH=255 1.3将下列十六进制数转换为二进制数和十进制数: (1) FA (2) 5B (3) FFFE (4) 1234 答:(1) FAH=1111 1010B=250 (2) 5BH=101 1011B=91 (3) FFFEH=1111 1111 1111 1110B=65534 (4) 1234H=1 0010 0011 0100B=4660 1.4完成下列十六进制数的运算,并转换为十进制数进行校核: (1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F 答:(1) 3A+B7H=F1H=241 (2) 1234+AFH=12E3H=4835 (3) ABCD-FEH=AACFH=43727 (4) 7AB×6FH=35325H=217893 1.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。 (1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76) 答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0 (2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0 (3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0 (5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1 1.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符 号数时,它们所表示的十进制数是什么? (1) D8 (2) FF 答:(1) D8H表示的带符号数为 -40,D8H表示的无符号数为216; (2) FFH表示的带符号数为 -1, FFH表示的无符号数为255。 1.7下列各数均为用十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的数或字符的 ASCII码时,它们所表示的十进制数及字符是什么? (1) 4F (2) 2B (3) 73 (4) 59 答:(1) 4FH表示的十进制数为 79,4FH表示的字符为O; (2) 2BH表示的十进制数为 43,2BH表示的字符为 +; (3) 73H表示的十进制数为115,73H表示的字符为s; (4) 59H表示的十进制数为89,59H表示的字符为Y。 1.8请写出下列字符串的ASCII码值。 For example, This is a number 3692. 答:46H 6FH 72H 20H 65H 78H 61H 6DH 70H 6CH 65H 2CH 0AH 0DH 54H 68H 69H 73H 20H 69H 73H 20H 61H 20H 6EH 75H 6DH 62H 65H 72H 20H 33H 36H 39H 32H 2EH 0AH 0DH

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

汇编语言程序设计习题答案 第一章. 习题 1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数: (1) 369 (2) 10000 (3) 4095 (4) 32767 答:(1) 369=1 0111 0001B=171H (2) 10000=10 0111 0001 0000B=2710H (3) 4095=1111 1111 1111B=FFFH (4) 32767=111 1111 1111 1111B=7FFFH 1.2将下列二进制数转换为十六进制数和十进制数: (1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111 答:(1) 10 1101B=2DH=45 (2) 1000 0000B=80H=128 (3) 1111 1111 1111 1111B=FFFFH=65535 (4) 1111 1111B=FFH=255 1.3将下列十六进制数转换为二进制数和十进制数: (1) FA (2) 5B (3) FFFE (4) 1234 答:(1) FAH=1111 1010B=250 (2) 5BH=101 1011B=91 (3) FFFEH=1111 1111 1111 1110B=65534 (4) 1234H=1 0010 0011 0100B=4660 1.4完成下列十六进制数的运算,并转换为十进制数进行校核: (1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F 答:(1) 3A+B7H=F1H=241 (2) 1234+AFH=12E3H=4835 (3) ABCD-FEH=AACFH=43727 (4) 7AB×6FH=35325H=217893 1.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其

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

《汇编语言程序设计》试题 专业姓名成绩 一、单项选择题(每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 12下列程序段执行后,寄存器BX中的内容是什么()

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

第四章汇编语言程序设计习题答案 一、单项选择题 1.C 2.B 3.C 4.C 5.C 6.A 7.A 8.C 9.B10. D 11.B12.B13.D14.C15.C16.A17.D18.D19.A20. C 21.B22.D23.D24. A 二、多项选择题 1.ABCEF 2.ACE 3.AC 4.ABCD 三、填空题 1.PARA 2.1,2,60,120, 1 3.SEGMENT,ENDS 4.1200 5.段内转移,段间转移 6.AH 7.过程,PROC,RET,NEAR,FAR 8.LEA BX,BUF 9.1, 4 10..0504H 11.ASM,EXE 12.立即寻址,直接寻址 四、判断题 ××××V V V××V 五、程序分析题 1. 3 2.12H,3412H 3.46H,73H 4.(1) 从目的串中查找是否包含字符‘0’,若找到则停止,否则继续重复搜索。 (2) ZF=1, 说明已找到字符 ZF=0, 说明未找到字符 CX 0,说明中途已找到字符退出 CX=0,且ZF=0说明串中无字符‘0’ 5.1, 0, 3, 2, 5, 4, 7, 6, 9, 8 6.87H,81H 7.44AAH,44D5H 8.DEC CX,JNC,JZ 9.JNZ L2 10.ADC DX,0,CLC 11.AAS 12.STOSB 13.1,3,1,2, 2 14.(2000H)=39H (2001H)=00H

将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型BCD码, 并存入(2000H)单元,0 (2001H) 15.A)2345H,6780H B)将DX、AX中存放的32位二进制数向左移动4位 16.0 ,1009H0 对数据段内1000H~1008H单元置数,依次送入1,2,4,8,16,32,64,128, 0共九个 17.20H,10,T 18.①$-BUF②ASSUME CS:CODE,DS:DATA③MOV DS,AX MOV AX,0⑤JLE NEXT⑥JNZ NEXT⑦JNZ LOPA⑧BEGIN 19.不相同,第一个数据段72H在前,04在后,后一个04H在前,72H在后。 20.09H,0EH,0DH 六、简答题 1.NUMS分配了180个字节(3分) V AR分配了15个字节 2.(1)把SP所指的堆栈顶部的一个字的内容弹回IP,SP加2。 (2)段间返回指令把SP所指的堆栈顶部的两个字的内容先弹回IP后弹回CS,SP加 4。 3.2, 10, 20 ,16字节单元 (2)程序运行后,XAD、YAD,单元中的值为9和39H,屏幕上显示的字符是“9” 6.YXGFDCBA9621 7.程序功能是将从STRING开始的N个字节中的字符串变成大写存放到从NEWSTR开 始的N个字节中。程序执行后,从NEWSTR开始的N个字节中的内容是"ASSEMBLE LANGUAGE IS POWERFUL"。 七、编程题 1.参考程序: CODE SEGMENT ASSUME CS:CODE,DS:CODE GO: MOV AX,DATA MOV DS,AX AND AL,0F0H EXIT: CODE ENDS END GO 2.参考程序: DATA SEGMENT ORG 1000H DAT DB '1234$567$8'

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

一、单项选择题(每小题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

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

汇编语言程序设计习题及答案 汇编语言程序设计习题及答案 汇编语言是一种底层的计算机语言,它直接操作计算机的硬件资源。虽然在现 代计算机编程中,高级语言如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. 汇编语言属于 ____。 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 ; 输入第一个数

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

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

1.1把下列2、8、16进制数转换成为十进制数 (1)(1011011)2(2)(0.10110)2(3)(111111.01)2(4)(1000001.11)2(5)(377)8(6)(0.24)8(7)(3FF)16(8)(2A.4)16 解:(1)(1011011)2=64+16+8+2+1=91 另解:原式=(5B)16=5×16+11=91 (2)(0.10110)2=0.5+0.125+0.0625=0.6875 (3)(111111.01)2=32+16+8+4+2+1+0.25=63.25 另解:原式=(1000000-1+0.01)2=64-1+0.25=63.25 (4)(1000001.11)2=64+1+0.5+0.25=65.75 (5)(377)8=3×64+7×8+7=255 另解:原式=(400-1)8=4×64-1=255 (6)(0.24)8=2×0.125+4×0.015625=0.3125 (7)(3FF)16=3×256+15×16+15=1023 另解:原式=(400-1)16=4×256-1=1023 (8)(2A.4)16=2×16+10+4×0.0625=42.25 另解:原式=2×16+10+4÷16=42.25 1.2 把下列十进制数转换为2、16进制数 (1)(127)10(2)(33)10(3)(0.3)10(4)(0.625)10 (5)(1023.5)10(6)(377)10(7)(1/1024)10(8)(377/32)10解:(1)(127)10 =64+32+16+8+4+2+1= (111 1111)2=(7F)16 另解:原式=(128-1)10=(1000 0000-1)2=(111 1111)2=(7F)16 (2)(33)10=32+1= (10 0001)2=(21)16 (3)(0.3)10 = (0.0100 1100 1……)2=(0.4CCC……)16 (4)(0.625)10= 0.5+0.125=(0.101)2=(0.A)16 (5)(1023.5)10 = 512+256+128+64+32+16+8+4+2+1+0.5 =(11 1111 1111.1)2=(3FF.8)16 (6)(377)10 =256+64+32+16+8+1=(1 0111 1001)2=(179)16 (7)(1/1024)10=(0.0000 0000 01)2=(0.004)16 (8)(377/32)10=(256+64+32+16+8+1)÷(32)= (101111001)2÷(100000)2 =(1011.11001)2=(0B.C1)16 1.3 把下列二进制数转换为十六进制数 (1)(100011)2(2)(0.11101)2(3)(11111.11)2(4)(0.00101)2解:(1)(100011)2=(10‟0011)2=23H (2)(0.11101)2=(0.1110‟1000)2=0.E8H (3)(11111.11)2=(1‟1111.1100)2=1F.CH (4)(0.00101)2=(0.0010‟1000)2=0.28H 1.4 把下列十六进制数转换为二进制数 (1)(3B6)16(2)(100)16(3)(80.2)16(4)(2FF.A)16解:(1)(3B6)16=(0011 1011 0110)2 (2)(100)16=(0001 0000 0000)2 (3)(80.2)16=(1000 0000.0010)2 (4)(2FF.A)16 =(0010 1111 1111.1010)2

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

汇编语言程序设计试题答案 汇编语言程序设计试题 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2分,共50分) 1.CPU发出的访问存储器的地址是( ) A.偏移地址 B.物理地址 C.逻辑地址 D.段地址 2.使计算机执行某种操作的命令是( ) A.伪指令 B.标号 C.指令 D.助记符 3.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( ) A. 1400H B. 77F8H C. 0000H D. 0FFFFH 4.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是( )码。 A. BCD码 B.二进制码 C.十六进制码 D.ASCII码 5.下列关于8086CPU的工作原理的描述错误的是( )。 A.汇编程序员可以通过对各种寄存器中内容的修改实现对CPU 的控制。B.CPU在访问内存时,采用“段地址*16+偏移地址”的形

式给出要访问的内存单元的物理地址。 C.任意时刻,CS:IP指向的内容即是此刻CPU正在执行的指令。 D.传送指令能够更改所有通用寄存器的内容。 6.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是() A.12C5BH B.12C59H C.12B6BH D.12BFEH 7. 16位结构的CPU 不一定具备的特性是( )。 A. 运算器一次最多可以处理16位的数据 B. 寄存器的最大宽度为16位 C. 地址总线为16根 D. 寄存器和运算器之间的通路为16位 8. 下列指令的书写正确的是()。 A. push al B. mov cs:[0],ds:[10] C. pop si D. mov ds:[0],2 9.在DEBUG工具中,显示寄存器内容的命令是()。 A. G B. D C. T D. R 10. 能够将ax中的内容送到内存0000:0200H处的指令序列是()。 A. mov ds,0 mov bx,200h mov [bx],ax B. mov ax,200h mov ds,ax

汇编语言程序设计试卷

汇编语言程序设计试卷 一. (共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--详细答案

汇编语言程序设计题库练习题1--详细答案 汇编语言程序设计练习题 一、单项选择题 1、与100.5不相等的数据是【 C 】 A. 64.8H B. 1100100.1B C. 64.5H D. 144.4O 2、指向程序代码段的段寄存器是【 A 】 A. CS B. DS C. SS D. FS 3、在内存字单元(20000)中存放数1324H,即(20000)=1324H,则从字节单元20001H 中取出一个字节为【 A 】A. 13H B. 24H C. 1324H D. 2413H 4、完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是【 A 】 A. MOV AL,00H B. AND AL,00H C. XOR AL,AL D. SUB AL,AL 5、指令JMP BX转移的目标地址的偏移量为【 C 】 A. IP+BX的内容 B. IP+[BX] C. BX的内容 D. BX所指向的内存字单元的内容

6、DA1 DW 2A05H DA2 DB 07AH ┇ MOV AL,BYTE PTR DA1 SUB DA2,AL 上述指令执行后,DA2中的内容是【 C 】A. 7AH B. 02AH C. 075H D. 050H 7、某存储单元的物理地址是12345H,可以作为它的段地址有【 d 】 A. 2345H B. 12345H C. 12340H D. 1234H 8、设有数据定义X2 DW 10 DUP (0,1,2),定义了多少字节的缓冲【 C 】 A. 6 B. 30 C. 60 D. 40 9、有符号数AX除以2的指令是【 B 】 A. SHR AX,1 B. SAR AX,1 C. ROR AX,1 D. RCR AX,1 10、DEC BYTE PTR[BX]中的操作数的数据类型是【 C 】 A. 字 B. 双字 C. 字节 D. 四字

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

汇编语言程序设计参考答案 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

大连理工大学智慧树知到“计算机科学与技术”《汇编语言程序设计》网课测试题答案 (图片大小可自由调整) 第1卷 一.综合考核(共15题) 1.假设(EAX)=00001000H,(EBX)=00002000H,(DS)=0010H,试问MOV ECX,[EAX+EBX]指令访问内存的物理地址是()。 A.00003100H B.10003100H C.00003200H D.00005100H 2.指令是能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。() A.正确 B.错误 3.在DOS系统中输入汇编.doc文件名就可以执行该汇编程序。() A.正确 B.错误 4.如果(AL)=66H,执行如下程序片段后(1)OR AL,1 (2)ADC AL,82H后,CF的执行结果为()。 A.0 B.1 C.2 D.3 5.NOT AX,执行后,将AX清0。() A.正确 B.错误 6.BETA EQU 56语句的功能是使BETA的值为56。() A.正确 B.错误7.在所有的进位计数制中,整数部分最低位的权都是1。() A.正确 B.错误 8.指令XOR AX,AX执行后,AX内容不变,但设置了标志位。() A.正确 B.错误 9.运算器虽有许多部件组成,但核心部分是()。 A.数据总线 B.算术逻辑运算单元 C.cache D.CPU和寄存器 10.当源程序被汇编时,汇编程序将对每个宏调用作宏展开。宏展开就是用宏定义体取代源程序中的宏指令名,并且用实元取代宏定义中的哑元,对应关系是一一对应。() A.正确 B.错误 11.汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法()。 A.名字的第一个字符可以是大写英文字母 B.名字的第一个字符可以是字母、数字、@、_ C.名字的有效长度≤31个字符 D.一般来说,名字项可以是标号 12.子程序调用过程中,它只占用自身空间大小,而宏汇编在调用后,都要作一次宏展开,因此实际占用空间会随着宏调用次数增加而增加。所以使用宏汇编没有任何意义。() A.正确 B.错误 13.外存比主存的存储容量小、存取速度快。() A.正确 B.错误 14.段定义伪操作中,组合类型(combinetype)说明程序链接时的段组合并方法。() A.正确 B.错误 15.如果(AL)=66H,执行如下程序片段后(1)OR AL,1 (2)ADC AL,82H后,(AL)的执行结果为()。 A.0E9H B.0EAH C.0EBH D.0ECH

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