最新文章专题视频专题问答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
当前位置: 首页 - 正文

汇编要点答案

来源:动视网 责编:小OO 时间:2025-09-25 04:50:48
文档

汇编要点答案

二CPU是哪2个部件集成到一个芯片?运算器,控制器计算机系统包括哪2个部分?硬件,软件计算机软件包括哪2种类型?系统软件,应用软件CPU由哪几部分组成?1、算术逻辑部件(ALU)2、控制逻辑3、工作寄存器8086的有哪几个通用寄存器?哪些提供了字节访问?寄存器可以分为程序可见的寄存器和程序不可见的寄存器两大类。通用寄存器有AX(accumulator)累加器;BX(base)基址寄存器;CX(count)计数器;DX(data)数据寄存器;BP(basepointe
推荐度:
导读二CPU是哪2个部件集成到一个芯片?运算器,控制器计算机系统包括哪2个部分?硬件,软件计算机软件包括哪2种类型?系统软件,应用软件CPU由哪几部分组成?1、算术逻辑部件(ALU)2、控制逻辑3、工作寄存器8086的有哪几个通用寄存器?哪些提供了字节访问?寄存器可以分为程序可见的寄存器和程序不可见的寄存器两大类。通用寄存器有AX(accumulator)累加器;BX(base)基址寄存器;CX(count)计数器;DX(data)数据寄存器;BP(basepointe
                        二

CPU是哪2个部件集成到一个芯片?

运算器,控制器

计算机系统包括哪2个部分?

硬件,软件

计算机软件包括哪2种类型?

系统软件,应用软件

CPU由哪几部分组成?

1、算术逻辑部件(ALU)2、控制逻辑3、工作寄存器

8086的有哪几个通用寄存器?哪些提供了字节访问?

寄存器可以分为程序可见的寄存器和程序不可见的寄存器两大类。通用寄存器有AX(accumulator)累加器; 

 BX(base)基址寄存器; 

 CX(count) 计数器; 

 DX(data)数据寄存器; 

 BP(base pointer)基址指针寄存器; 

 SI(source index)源变址寄存器; 

 DI(destination index)目的变址寄存器; 

其中

AX(accumulator)累加器; 

 BX(base)基址寄存器; 

 CX(count) 计数器; 

 DX(data)数据寄存器;

提供了字节访问

标志寄存器各标志位的含义?IP和SP的含义?

标志名 

标志为1 

标志为0 

OF  溢出(是/否) 

DF  方向(减量/增量) 

IF   中断(允许/关闭) 

SF  符号(负/正) 

ZF  零(是/否)

AF  辅助进位(是/否) 

PF  奇偶(偶/奇) 

CF  进位(是/否)

OV

DN

EI

NG

ZR

AC

PE

CY

NV

UP

DI

PL

NZ

NA

PO

NC

TF为陷阱标志位,为1时,每条指令执行后产生陷阱,用于单步调试

IP(instruction pointer) 指令指针寄存器;

SP(stack pointer) 堆栈指针寄存器;

FLAGS 标志寄存器。

8086有哪几个段寄存器?

代码段(code segment,CS)、数据段(data segment,DS)、堆找段(stack segment,SS)和附加段(extra segment,ES)4个寄存器。

了解寄存器和存储器的不同

寄  存  器             存  储  器

在CPU内部           在CPU外部

访问速度快           访问速度慢

容量小,成本高    容量大,成本低

用名字表示           用地址表示

没有地址               地址可用各种方式形成

8086是按字编址,对吗

不对,按字节编址

8086的一个字(16位)怎样存入存储器的?

个字存入存储器要占有相继的两个字节,存放时低位字节存入低地址,高位字节存入高地址。

8086的使用存储器地址访问数据时,能根据地址确定数据的大小吗

不能,同一个地址既可看作字节单元的地址,又可看作字单元、双字单元的地址,这要根据使用情况确定。 

8086的地址空间是多大?

1MB

1个段最大最小都是多大,段首地址的特点

KB,段不能起于任意地址,而必须从任一小段的首地址开始,每16个字节为一小段。

一个物理地址由段地址和偏移地址组成,这种表示是唯一的吗

不唯一

学会段地址和偏移地址合成物理地址

物理地址 = 16   段地址 + 偏移地址

例:(DS) = 2100H,  (BX) = 0500H

        (PA) = 21000H+0500H = 21500H        

8086实模式下内存最多多大?

1M

 三

能识别各种寻址方式,尤其是存储器寻址

与数据有关的寻址方式

1.立即寻址方式

2.寄存器寻址方式

存储器寻址的几个说明

3.直接寻址方式

4.寄存器间接寻址方式

5.寄存器相对寻址方式

6.基址变址寻址方式

7. 相对基址变址寻址方式

与转移地址有关的寻址方式

1.段内直接寻址

2.段内间接寻址

3.段间直接寻址

4.段间间接寻址

理解立即寻址方式

操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段里,这种操作数称为立即数。

【例】 MOV  AL,5         ;执行后,(AL)=5

【例】 MOV  AX,30H       ;执行后,(AX)=30H

寄存器寻址和寄存器间接寻址的区别

寄存器寻址方式

操作数在寄存器中,指令指定寄存器号。

【例】    MOV  AX,BX 

        如指令执行前 (AX)=30H,(BX)=1234H;则指令执行后,(AX)=1234H。

寄存器间接寻址方式

有效地址就在某个寄存器中,而操作数则在存储器中。在16位寻址时可用的寄存器是BX,BP,SI和DI。

8086存储器寻址的有效地址如何构成

有效地址可以由以下四种成分组成:

(1)位移量(displacement)是存放在指令中的一个8位、16位或32位的数,它不是立即数,是一个地址。

(2)基址(base)是存放在基址寄存器中的内容。 它是有效地址中的基址部分,通常用来指向数据段中数组或字符串的首地址。

(3)变址(index)是存放在变址寄存器中的内容。它通常用来访问数组中的某个元素或字符串中的某个字符。

(4)比例因子(scale factor)是386及其后继机型新增加的寻址方式中的一个术语,其值可为1、2、4或8。在寻址中,可用变址寄存器的内容乘以比例因子来取得变址值。这类寻址方式对访问元素长度为2,4,8 字节的数组特别有用。

有效地址的计算可以下式表示:

    EA=基址+(变址×比例因子)+位移量 

段前缀使用的3个例外情况

(1)串处理指令的目的串必须用ES段;

(2)PUSH指令的目的和POP的源必须用SS段;

(3)指令必须存放在CS段中。

默认段选择规则

双操作数指令的2个操作数可以都是存储器寻址吗

为使指令字不要过长,规定双操作数指令的两个操作数中,只能有一个使用存储器寻址方式。 

立即寻址和直接寻址都用到数值,汇编指令中如何区分

立即寻址方式

操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段里,这种操作数称为立即数。

         直接寻址方式

操作数的有效地址只包含位移量一种成分,其值就存放在代码段中指令的操作码之后。位移量的值即操作数的有效地址。

了解符号地址的使用方式

可以用符号地址代替数值地址

     MOV  AX,VALUE

           或MOV AX,[VALUE]

寄存器间接寻址使用的寄存器可以是AX吗

不能

有效地址就在某个寄存器中,而操作数则在存储器中。在16位寻址时可用的寄存器是BX,BP,SI和DI。

掌握有效地址有2种以上成分时的各种表示方法

学会使用与转移地址有关的寻址方式

1.段内直接寻址

2.段内间接寻址

3.段间直接寻址

4.段间间接寻址

段内直接寻址方式有哪2种?它符合程序的再定位要求,对吗?段间直接寻址呢?

JMP NEAR PTR PROGIA

JMP SHORT QUEST 

其中,PROGIA和QUEST均为转向的符号地址,在机器指令中,用位移量来表示。

在汇编指令中,如果位移量为16位,则在符号地址前加操作符NEAR PTR,如果位移量为8位,则在符号地址前加操作符SHORT。

这种寻址方式的转移指令本身不会发生变化,这是符合程序的再定位要求的

段间直接寻址

在指令中直接提供了转向段地址和偏移地址,所以只要用指令中指定的偏移地址取代IP寄存器的内容,用指令中指定的段地址取代CS寄存器的内容就完成了从一个段到另一个段的转移操作。

【例】 JMP FAR PTR NEXTROUTINT 

         其中,NEXTROUTINT为转向的符号地址,FAR PTR 则是表示段间转移的操作符。 

与地址相关的间接寻址如果使用存储器寻址,为什么要指出是字还是双字?

段间间接寻址

JMP DWORD PTR[INTERS+BX] 

段内间接寻址

JMP BX

    JMP WORD PTR[BP+TABLE] 

MOV指令应注意的细节

CS和IP不能作为操作数,sreg不包括CS

立即数不能做目的操作数

立即数不能直接赋值给段寄存器sreg,需要时可以通过通用寄存器中转

两个存储器单元之间不能直接传送数据,即不能同时做源操作数和目的操作数

两个段寄存器之间不能直接传送数据

目的操作数和源操作数的数据宽度必须一致,即都必须为8位或都必须为16位

理解指令PUSH和POP,注意其格式及使用方法

格式为:PUSH SRC

执行操作(8086为16位指令):

(SP)←(SP)-2

((SP)+1,(SP))←(SRC)

PUSH向SS:SP存数

PUSH CX;若(SP)=2000H,执行指令后,CH与CL的内容分别压入堆栈偏移量为1FFFH与1FFEH的字节单元中,而(SP)=1FFEH

格式为:POP DST 

执行操作(8086为16位指令):

(DST)←((SP)+1,(SP))

(SP)←(SP)+2

8086中,PUSH和POP指令只能作字操作,均不影响标志位

POP从SS:SP取数

POP DS;若(SP)=2000H,执行指令后,堆栈中偏移量为2000H与2001H的两字节单元分别送DS低字节和高字节单元中,而(SP)=2002H

8086中,PUSH/POP指令允许的格式:

PUSH/POP  reg 

PUSH/POP  mem 

PUSH/POP  segreg 

segreg不允许使用 CS 寄存器,操作数不允许使用立即数寻址方式(PUSH data)

保存现场时要注意压入与弹出的顺序是相反的,例如:

    压入时:    push AX

            push BX

    弹出时:    pop BX

            pop AX

XCHG指令的2个操作数中必须有一个是寄存器,对不对?

对

学会IN和OUT指令的2种使用形式

IN 输入指令

长格式为:IN AL,PORT(字节)

                     IN AX,PORT(字)

执行的操作:(AL)←(PORT)(字节)

                         (AX)←(PORT+1,PORT)(字)

短格式为:IN AL,DX(字节)

                     IN AX,DX(字)

执行的操作:(AL)←((DX))(字节)

                         (AX)←((DX)+1,(DX))(字)

PORT为8位地址,DX可指定16位地址

以上针对8086

OUT 输出指令

长格式为:OUT PORT,AL(字节)

                     OUT PORT,AX(字)

执行的操作:(PORT)←(AL)(字节)

                         (PORT+1,PORT)←(AX)(字)

短格式为:OUT DX,AL(字节)

                     OUT DX,AX(字)

执行的操作:((DX))←(AL)(字节)

                         ((DX+1,(DX))←(AX)(字)

以上针对8086

I/O端口取值范围是多少?

0~65535

了解XLAT指令的功能

格式为:XLAT OPR

                  XLAT

执行的操作(8086为16位指令):

(AL) ← ((BX)+(AL))

将BX中内容与AL中内容相加,作为偏移地址,将数据段中对应字节单元内容送入AL中。BX通常为表格首址,利用该指令实现查表。由于AL只有8位,所以表格长度不能超过256

OPR为表格首地址(一般为符号地址),只为可读性而设置,不真正发挥作用

指令不影响标志位

例: MOV AL,5

           MOV BX, OFFSET TAB

           XLAT

           …

    TAB DB 10H 23H 34H 12H 23H 45H 65H 90H               76H

    执行指令后,(AL)=45H

例:如(BX)=0040H,(AL)=0FH,(DS)=F000H

    指令XLAT把F0000H+0040H+0FH=F004F的内容送AL

最后(AL)=2CH

LEA BX,LIST与 MOV BX,OFFSET LIST完成的功能一样吗

一样

LDS(LES)指令的功能

段寄存器装入指令

LDS/LES

格式:LDS/LES REG,SRC

✓LDS与LES指定的段寄存器分别为DS和ES

✓SRC只能用存储器寻址方式

✓目的寄存器不允许使用段寄存器。

执行的操作:    (REG)←(SRC)

                          (SREG)←(SRC+2)

例:LDS BX,[2000H] ;把内存数据段中偏移量为2000H开始的[2000H]、[2001H]单元内容送BX,[2002H]、[2003H]单元内容送DS

存取标志寄存器的方法有哪些

存取标志寄存器指令

LAHF 标志送AH指令

格式为:LAHF

执行的操作:(AH)←(FLAGS的低字节)

SAHF AH送标志寄存器指令

格式为:SAHF

执行的操作:(FLAGS的低字节)←(AH)

8到16位和16到32的符号扩展使用哪2个命令,如何扩展?

CBW字节转换为字指令

格式:CBW

执行的操作:AL的内容符号扩展到AH,形成AX中的字。 

若(AL)<80H,则(AH)=0;若(AL)>=80H,则(AH)=0FFH

CWD字转换为双字指令

格式:CWD

执行的操作:AX的内容符号扩展到DX,形成DX:AX中的双字。

若(AX)<8000H,则(DX)=0;若 (AX)>=8000H,则(DX)=0FFFFH

CBW/CWD常被安排在IDIV指令之前

INC和DEC指令是否影响CF位?

不影响

这个,没办法了,当初的指令就是这么设计的,可能是个   bug,   但就这么一直继承下来的.如果需要影响   CF,   应该用   ADD/SUB   xx,   1   指令 另外,   INC/DEC   是影响   ZF   位的

加减法指令分哪2种?乘除法指令分哪2种?

ADD加法指令

ADC带进位加法指令

SUB减法指令

SBB带借位减法指令

MUL无符号数乘法指令

IMUL带符号数乘法指令

DIV无符号数除法指令

IDIV带符号数除法指令

理解加减法后CF、OF、ZF、SF如何变化

ADD为不带进位加法指令,将源操作数和目的操作数相加,和保留在目的操作数之中,并改变标志位:CF(通过加法运算是否有进位判断)、OF、SF、PF、ZF和AF

ADC AL,30H[BX];AL中内容加上数据段中[BX+30H]字节内容,再加上CF位原值,结果送AL。如果再有进位,则置位CF,否则CF位清0, 结果还影响标志位:OF、SF、PF、ZF和AF

SUB为不带借位减法指令

若减数>被减数,CF=1,否则CF=0

也可以用二进制补码运算(加法形式)是否有最高位进位判断,有则CF=0,否则CF=1

减1指令DEC将操作数内容减1,都把结果送回操作数中,并根据结果设置除CF以外的标志位,操作数不能为立即数,经常用于修改地址指针

MUL  DL;指令完成DL与AL内容的字节乘法运算

MUL WORD PTR [2000H];指的是[2000H][2001H]单元字内容与AX内容进行字乘法运算

对于MUL指令,如果乘积的高一半为0,则CF位和OF位均为0;否则CF位和OF位均为1。

对于IMUL指令,如果乘积的高一半是低一半的符号扩展,则CF位和OF位均为 0,否则就均为1。

DIV执行的操作:

字节操作:(AL)←(AX)/(SRC)的商

                     (AH)←(AX)/(SRC)的余数

 字操作:(AX)←(DX,AX)/(SRC)的商

                       (DX)←(DX,AX)/(SRC)的余数

IDIV操作方法与DIV相同,但操作数为带符号数。

除法指令对所有条件码位均无定义。

IDIV字节相除时,商的范围是-080H-7FH,字相除时,商的范围是-8000H-7FFFH。如果除数为“0”或商超出累加器的容量,则产生除法错误故障(中断0)

余数的符号和被除数相同

除法运算和CBW,CWD配合使用

理解CMP指令如何完成数的比较

格式:CMPS SRC,DST

              CMPSB(字节)

              CMPSW(字)

执行的操作:

① ((DS): (SI)) - ((ES): (DI)) 

②字节操作: (SI)←(SI)±1 (DI)←(DI)±1

       字操作:(SI)←(SI)±2(DI)←(DI)±2

DF=0用+,否则用−

文档

汇编要点答案

二CPU是哪2个部件集成到一个芯片?运算器,控制器计算机系统包括哪2个部分?硬件,软件计算机软件包括哪2种类型?系统软件,应用软件CPU由哪几部分组成?1、算术逻辑部件(ALU)2、控制逻辑3、工作寄存器8086的有哪几个通用寄存器?哪些提供了字节访问?寄存器可以分为程序可见的寄存器和程序不可见的寄存器两大类。通用寄存器有AX(accumulator)累加器;BX(base)基址寄存器;CX(count)计数器;DX(data)数据寄存器;BP(basepointe
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top