最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

汇编语言复习资料1

来源:动视网 责编:小OO 时间:2025-10-01 17:27:00
文档

汇编语言复习资料1

一、单选题(每题1分,共20分)1.PC机的最小信息单位是()。A:bitB:字节C:字长D:字2.一个CPU的寻址能力是8KB,那么它的地址总线的宽度为()位。A:8B:3C:12D:133.在Debug中,用“d075A:11011F”查看内存,结果如下:075A:0110B80000FF0700B84C—CD21F369208A03A1那么,字型数据00B8H对应的地址为()。A:076A:11B:076A:16C:076B:0D:无法确定4.Debug加载程序后,假设PSP的段地址为S
推荐度:
导读一、单选题(每题1分,共20分)1.PC机的最小信息单位是()。A:bitB:字节C:字长D:字2.一个CPU的寻址能力是8KB,那么它的地址总线的宽度为()位。A:8B:3C:12D:133.在Debug中,用“d075A:11011F”查看内存,结果如下:075A:0110B80000FF0700B84C—CD21F369208A03A1那么,字型数据00B8H对应的地址为()。A:076A:11B:076A:16C:076B:0D:无法确定4.Debug加载程序后,假设PSP的段地址为S
一、单选题(每题1分,共20分)

1.PC机的最小信息单位是(  )。

A : bit

B : 字节

C : 字长

D : 字

2.一个CPU的寻址能力是8KB,那么它的地址总线的宽度为(  )位。

A : 8 

B : 3

C : 12

D : 13

3.在Debug中,用“d 075A:110 11F”查看内存,结果如下:

075A:0110  B8  00  00  FF  07  00  B8  4C — CD  21  F3  69  20  8A  03  A1  

那么,字型数据 00B8H对应的地址为(  )。

A : 076A:11

B : 076A:16 

C : 076B:0

D : 无法确定

4.Debug加载程序后,假设PSP的段地址为SA,偏移地址为0,则程序的起始地址是(  )。

A : SA×16H

B : SA×16

C : (SA+16H)×16H

D : (SA+16)×16

5.8086CPU中,任意时刻,CPU将(  )指向的内容当作指令来执行。

A : DS:SI

B : CS:IP

C : SS:SP

D : ES:DI

6.下列关于Debug的说法,错误的是(  )。

A : R命令可以修改寄存器的内容。

B : E命令可以修改内存单元的内容。

C : T命令每次只执行一条指令。

D : D命令可以查看内存单元的内容。

7.源程序中有如下两个按先后顺序定义的段: 

    a segment  

            db 1,2,3,4,5,6,7,8  

    a ends  

    b segment  

            db 1,2,3,4,5,6,7,8  

    b ends  

    如果a段中“1” 这个数据的物理地址是X,则b段中“1”这个数据的物理地址是(  )。

    A : X 

    B : X+1 

    C : X+16 

    D : X+

8.对于8086CPU,错误的指令是(  )。

A : mov ax,bx

B : mov ax,[bx]

C : mov ds,0

D : mov ax,0

9.对于8086CPU,正确的指令是(  )。

A : inc cx,1

B : shl ax,2

C : and [bp],al

D : mov [bx][bp],ax

10.以下指令执行后,寄存器ax的值为(  )。

mov ax, 0095h 

mov ah, 95h 

add al, ah

A : 9680H

B : 968AH

C : 962AH

D : 952AH

11.可以实现将ax的值增大2倍的是(  )。

A : mul 2

B : mul ax,2

C : shl ax,1

D : shr ax,1

12.以下指令执行后,of和cf的值是:(  )

mov ax,0

    push ax

    popf

    mov ax,0ffffh

    inc ax

A : of=0,cf=0 

B : of=1,cf=0

C : of=0,cf=1

D : of=1,cf=1

13.CPU在执行“call标号” 时,相当于执行(  )。

A :     

push  IP

       jmp far ptr 标号

B :     

push     CS

push  IP

       jmp far ptr 标号  

C :  

push  IP

       jmp near ptr 标号

D :  

push     CS

push  IP

            jmp near ptr 标号

14.在8086PC中,CPU不可用指令读取(  )中的数据。

A : 控制总线

B : 端口

C : 键盘缓冲区

D : 存储BIOS的ROM

15.下列关于中断的说法,正确的是(  )。

A : 中断信息可以来自CPU内部和外部。

B : 中断类型码为一个字型数据,可以表示65536种中断信息的来源。

C : 键盘输入会引发内中断。

D : 对于8086CPU,中断向量表指定放到第一个单元的地址为0的大小为kB的内存空间中。

16.中断向量表中存放的是(  )。

A : 中断类型码

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

C : 中断处理程序

D : 断点地址

17.8086 CPU 最多可定位(  )个不同的端口。

A : 1M

B : 1K

C : K

D : 32K

18.可屏蔽中断是否被CPU响应受(  )的控制。

A : TF

B : IF

C : IF和TF

D : AF

19.使用call和ret指令,我们可以实现汇编语言编程中的模块化设计。以下描述中错误的是(  )。

    A : 可以用call和ret指令实现多个子程序。 

    B : 可以通过多个相互联系、功能的子程序来解决一个复杂的问题。 

    C : 对于通用的子程序,最好加上详细的注释。 

    D : 用汇编语言进行程序设计,子程序一定要用call和ret来实现。

20.PC机的启动过程是(  )。

 ①、CPU加电,CS:IP指向FFFF:0。 

 ②、进行操作系统引导。 

 ③、执行JMP指令跳转到BIOS。 

 ④、登记BIOS中断例程入口地址。 

 ⑤、硬件检测。 

    A : ①②③④⑤ 

    B : ①③⑤④② 

    C : ①③④⑤② 

    D : ①⑤③④②

二、单选题(每题2分,共40分)

1.下列关于汇编语言源程序的说法,错误的是(  )

A : 一个汇编语言源程序从写出到执行需经过:编写.asm文件→将.asm文件编译为.obj文件→将.obj文件连接成.exe文件→.exe文件执行。

B : 在汇编语言源程序中,包含三种指令:汇编指令、伪指令、其他符号。

C : 在汇编语言源程序中,不由编译器执行的伪指令有对应的机器指令。

D : 在汇编语言源程序中,汇编指令是有对应机器码的指令,其所对应的机器指令由CPU执行。

2.关于8086CPU,下列说法错误的是(  )。

A : 8086CPU是16位结构的CPU,其能够一次性处理、传输、暂时存储的信息的最大长度是16bit。

B : 8086CPU采用“段地址×16 + 偏移地址 = 物理地址”的方式生成存储单元的地址。

C : 执行push指令和pop指令时,8086CPU从SP中得到栈顶的地址。

D : 对于8086CPU,在编程时,可以将长度为1KB的一组地址连续,起始地址为32的倍数的内存单元当成栈空间来使用。

3.有以下几条指令(debug下的指令格式): 

    mov ax,1000

    mov ss,ax 

    mov sp,0100 

    mov ax,5CCA 

    push ax 

    指令“push ax”执行后,sp的值和修改的内存单元的地址是(  )。

    A : 0100H,1000:0100 

    B : 00feH,1000:00fe

    C : 0100,1000: 0100

    D : 98,1000:98

4.给定段地址:101H,仅通过变化偏移地址寻址,8086CPU可以寻址到地址为(  )的内存单元。  

    A : 0 

    B : 12000H 

    C : 1000H      

    D : 10FFH

5.mov ax,4c00h

Int 21h

CPU执行完这两条指令后,(  )。

A : 返回到DOS

B : 返回到DEBUG

C : 返回到COMMOND 

D : 前三个选项都不对

6.以下程序计算28,选一个数据补全程序。(  )

assume cs:code

code segment     

start:

    mov ax,2

    mov cx,_____

s:

    add ax,ax

    loop s

     mov ax,4c00h

        int 21h

code ends

end  start

A : 8

B : 7

C : 4

D : 128

7.如下程序执行后,AX=(  )。

assume cs:code  

code segment 

start: 

    mov ax,2

    mov bx,2

    mov cx,0

s:

    add ax,bx

    loop s    

       mov ax,4c00h 

        int 21h 

code ends 

end start

A : 2

B : 4

C : 0FFFEH

D : 0FFFCH

8.以下寻址方式中,属于相对基址变址寻址的是(  )。

A : [bx+si+idata]

B : [bx+di]

C : [bp+si]

D : [bx]

9.执行下面的指令后,正确的结果是(  )。

mov  al,198

and  al, 01010011B 

or  al,01010101B

A : al = 57

B : al = 57H

C : al = 42

D : al = 42H

10.需要使用DS的指令是(  )。 

A : mov ax,[bp]

B : inc word ptr [bx]

C : add al,cl

D : and [bp],al

11.对于8086CPU,错误的指令是(  )。

A : mul cl

B : and dh,dl

C : push 45[di]

D : dec [bx]

12.关于int16h中断例程,下列说法正确的是(  )。

A : 在int16h中断例程中,一定有设置IF=1的指令。

B : DOS提供了int16h中断例程。

C : int16h中断例程可从键盘缓冲区中读出数据。

D : 用int16h中断例程的0号功能可读取到扫描码。

13.关于mul指令和div指令,下列说法正确的是(  )。

A : “mul dl”的另一个乘数在al中存放,运算结果存放在dx中。

B : mul 指令不会影响标志位。

C : “div dl”的被除数存放在ax中,商存放在al中,余数存放在dl中。

D : 执行div指令可能会引发中断。

14.不会影响标志位的指令是(  )。

A : jmp lable1

B : cmp ax,bx

C : int 9h

D : inc ax

15.关于PC机键盘的处理过程,正确的说法是(  )。

    A : 接口芯片上的接收扫描码的寄存器的端口地址为80H。 

    B : 扫描码的长度为一个字。

    C : 按下一个键产生的扫描码为通码,松开一个键产生的扫描码为断码。

    D : 断码=通码+60H。

16.

data segment

dd  1234h

data ends

data段中的数据1234h在内存中的存储情况为(  )。

A : 12 34 00 00

B : 34 12 00 00

C : 00 00 12 34

D : 00 00 34 12

 

17.从CMOS RAM中读取7号单元的内容,正确的指令是(  )。

    A :     mov al,7 

           out 70H,al 

           in al,71H 

    B :     in al,7

    C :     mov dx,7 

           in al,dx 

    D :     out 71H,7 

           in al,70H

18.用Debug查看内存,情况如下: 

0000:0000  60  10  00  F0  08  00  70  00—08  00  70  00  08  00  70  00 

单步中断的中断处理程序的入口地址为:(  )。

A : CS=F000,IP=1060 

B : CS=1060,IP= F000

C : CS=0070,IP=0008

D : CS=0008,IP=0070

19.下列关于CPU响应中断的说法,错误的是(  )。

A : CPU在执行完一条指令后,将检测IF,判断是否响应单步中断。

B : CPU在执行完当前指令后,就算是有中断信息,也不一定会响应。

C : 可屏蔽中断信息来自于CPU外部。可屏蔽中断的中断类型码通过数据总线送入CPU,而内中断的中断类型码在CPU内部产生。

D : 8086CPU响应不可屏蔽中断时不需要取中断类型码。

20.关于直接定址表,错误的说法是(  )。

    A : 直接定址表是用来标记数据地址的。 

    B : 直接定址表是一种有效合理地组织数据的技术。

    C : 使用直接定址表,可以使程序的结构更加清晰。

    D : 直接定址表可以存储在代码段中。

三、多选题(每题3分,共18分)

1.下列说法正确的是:( )。

    A : 可以将标号当做数据来使用,标号所表示的地址可以是一个数据。

    B : 应用assume将所用的数据标号所在的段和一个段寄存器联系起来。

    C : 后面加“:”的地址标号,只能在代码段中使用。

    D : 用assume将标号所在的段和一个段寄存器联系起来之后,段寄存器中就会存放这个段的段地址。

2.可以作为指令的访问对象写在指令中的是( )。

    A : 内存单元

    B : 端口

    C : ASCII码字符

    D : 硬盘上的扇区

     

3.以数据的源地址、目的地址和所传送的数据来看,哪些程序段可以说是“等效的”?( )。

A :     

cld

rep  movsb

B : 

s:    mov al,[si]

mov es:[di],al

inc si

inc di

loop s

C : 

std

rep  movsb

D : 

s:    mov al,es:[di]

mov [si],al

dec si

dec di

loop s

4.正确的说法是(    ):

    A : 对栈的操作不能越界,所以SP =0FFFFH时,不能执行POP指令。    

B: 把10000H~10001FH的16个字的数据,正序或逆序存储到20000H~20001FH处,都至少可以采用三种方式:仅用PUSH进行数据的传送、仅用POP进行数据的传送、仅用MOV进行数据的传送。 

    C: 使用PUSH、POP、MOV,要使指令可以正确地操作,应至少注意数据的源地址、目的地址、操作长度等三个因素。

    D: 通过栈指令将内存10000H到10001FH单元存储的16个字数据依次逆序,即10000H保存原来1001eH的内容,10002H保存原来1001cH的内容,…,10001eH保存原来10000H的内容,一定要借助寄存器或其它的内存单元。 

5.对于BIOS和DOS,错误的说法是:( )。

    A: cpu一加电从0:FFFF处开始执行,此处有一条跳转指令,cpu由之转去执行BIOS的硬件系统检测程序。 

    B: 在调用int 19h时,BIOS提供的中断例程 的入口地址已登记在中断向量表中。 

    C: BIOS将调用int 19h进行操作系统的引导。 

    D: command启动后,将开始建立用户工作环境,此时DOS将它所提供的中断例程装入内存,并建立相应的中断向量。

6.下列指令可读取或引发相应程序读取键盘输入信息的是( )。

    A : in al,60h 

    B : int 9h 

    C : int 16h 

    D : sti

四、程序设计(每题3分,共6分)

1.

assume cs:code

data segment

data ends

code segment

start:  

mov ax,data

mov ds,ax

mov si,0

  mov bx,0

  call count

     int 21h     

count:

mov cl,[si]

  mov ch,0

ok:  ret

code ends

end start

    上面的程序执行时,count返回前,bx中的值为(  )。

    

A : 3

    B : 0EH

    C : 0011H

    D : 0014H

2.子程序func实现c=a*2^b,a和 b的取值范围都是[0,10],依次存储在一个栈单元的高位与低位字节中,返回值c存储在ax寄存器中。如果a、b取值超界,ax中的返回值为0ffffh。补全这个子程序。(  )

func:

 push bp

mov bp,sp

add bp,4

push cx

cmp byte ptr [bp].1,10

ja sret

cmp byte ptr [bp],10

ja sret

mov ____,0

mov ____,[bp].1

mov ____,0

mov ____,[bp]

_________

 

   s: 

 shl ax,1

loop s

sret: 

pop cx

pop bp

ret

A: ch、cl、ah、al、jcxz sret

B: cl、ch、al、ah、je sret

C: ah、al、ch、cl、jcxz sret

D: ax、al、cx、cl、add ax,ax

E: 前几个选项都不对

五、程序研究(每题5分,共10分)

1. 以下程序要实现:按下数字键后,提示“You entered a number.”,按其它键正常显示。对于这个程序,正确的观点是(    )。

assume cs:code

stack segment

    db 128 dup(0)

stack ends

code segment

start:

    

    mov ax,stack

    mov ss,ax

    mov sp,128

    push cs

    pop ds

    mov ax,0

    mov es,ax

    

    mov si,offset int9

    mov di,204h

    mov cx,offset int9end-offset int9

    cld

    rep movsb

    mov word ptr es:[9*4],204h

    mov word ptr es:[9*4+2],0

push es:[9*4]

    pop es:[200h]

    push es:[9*4+2]

    pop es:[202h]

    mov ax,4c00h

    int 21h

int9:

    jmp short int9start

    db "You entered a number."

int9start:    

    push ax

    push bx

    push cx

    push es

in al,60h

    cmp al,2

    jb int9ret

    cmp al,0bh

    ja int9ret

    mov ax,cs

    mov ds,ax

    mov si,206h

    mov ax,0b800h

    mov es,ax

    mov di,12*160+36*2

    mov cx,21

s:    mov al,[si]

    mov es:[di],al

    inc si

    add di,2

    loop s

    

int9ret:

    pop es

    pop cx

    pop bx

    pop ax

    iret

int9end:

    nop

code ends

end start

A : 此程序对其所提供的9号中断例程的中断向量的设置不正确,应将“mov word ptr es:[9*4],204h”改为“mov word ptr es:[9*4],offset int9”,将“mov word ptr es:[9*4+2],0”改为“mov word ptr es:[9*4+2],seg int9”。

B : 以此程序想要实现的目标看,此程序有两处错误:①新的中断例程未调用原来的9号中断例程;② 安装新的中断例程的程序在设置中断向量表的相应表项之前,未保存原9号中断例程的入口地址。

    C : 此程序所提供的中断例程中,显示“You entered a number.”的程序段对此字符串的地址的设置有误。应用“mov si,offset int9+2”(“jmp short int9start”的机器码长度为2byte)对此字符串的偏移地址进行设置。

    D : 此程序存在一个潜在问题,这个问题是:若在执行“mov word ptr es:[9*4],204h”和“mov word ptr es:[9*4+2],0”之间发生键盘中断,将转去一个错误的地址执行。要消除这个问题,应在“mov word ptr es:[9*4],204h”前设置IF=0,在“mov word ptr es:[9*4+2],0”后设置IF=1。

E : 前几个选项都不对。

2.  以下子程序统计一个段中,偏移地址a1到偏移地址a2的所有字节单元中,值为零的单元的个数n,si存放a1,di存放a2,ax、dx存放n,dx的值为0FFFFh则表示未提供正确的参数。应在fun_s处对其值进行保存,在fun_s3处对其值进行恢复的寄存器是( )。

fun_s:  

……

mov bx,si

  mov ax,0

mov dx,0

mov cx,0

fun_s1: mov cl,[bx]

 inc cl

 

add ax,1

adc dx,0

 ……

ret

A、ax  B、bx  C、cx  D、dx  E、si  F、di  G、ds  H、es

六、项目分析(6分)

实现一个经典游戏——俄罗斯方块,其功能包括:

1)由四个大小相同的方块组合成的不同形状的图块从屏幕的顶端开始,沿屏幕的中间下降;

2)控制图块的左右移动、向下加速移动、旋转;

3)消除落定图块所构成的整行,计算分数。

对于实现这个游戏,合理的考虑是(        )。

A : 要想在dos中显示内容,则需向段地址为0b800h,偏移地址为0到0ffffh的内存空间写数据。

B : 可将四个方块的所有组合都定义到数据段。游戏运行时,可由随机数计算出描述这些图块的数据的偏移地址,用于相应的显示。

C : 写一个新的int 9h中断例程,处理与功能2的运行相关的键盘输入。

D : 也可以不改写int 9h中断例程,用int 16h中断例程的0号功能处理与功能2的运行相关的键盘输入。

E : 图块下降的速度可通过控制1s内下降的格数来实现。正常速度为1格/s,当按下↓键后,1s下降的格数递增。秒数信息可通过读取CMOS RAM中的数据来获取。

F : 判断是否构成整行、消除所构成的整行的程序段可做成子程序isrow、delrow。isrow可在图块已经不可继续向下移动后进行调用,在此之后可根据情况看是否调用delrow。

文档

汇编语言复习资料1

一、单选题(每题1分,共20分)1.PC机的最小信息单位是()。A:bitB:字节C:字长D:字2.一个CPU的寻址能力是8KB,那么它的地址总线的宽度为()位。A:8B:3C:12D:133.在Debug中,用“d075A:11011F”查看内存,结果如下:075A:0110B80000FF0700B84C—CD21F369208A03A1那么,字型数据00B8H对应的地址为()。A:076A:11B:076A:16C:076B:0D:无法确定4.Debug加载程序后,假设PSP的段地址为S
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top