IBMPC汇编语言期末总复习资料大全Word文档格式.docx

上传人:b****5 文档编号:8488011 上传时间:2023-05-11 格式:DOCX 页数:25 大小:53.46KB
下载 相关 举报
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第1页
第1页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第2页
第2页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第3页
第3页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第4页
第4页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第5页
第5页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第6页
第6页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第7页
第7页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第8页
第8页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第9页
第9页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第10页
第10页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第11页
第11页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第12页
第12页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第13页
第13页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第14页
第14页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第15页
第15页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第16页
第16页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第17页
第17页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第18页
第18页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第19页
第19页 / 共25页
IBMPC汇编语言期末总复习资料大全Word文档格式.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

IBMPC汇编语言期末总复习资料大全Word文档格式.docx

《IBMPC汇编语言期末总复习资料大全Word文档格式.docx》由会员分享,可在线阅读,更多相关《IBMPC汇编语言期末总复习资料大全Word文档格式.docx(25页珍藏版)》请在冰点文库上搜索。

IBMPC汇编语言期末总复习资料大全Word文档格式.docx

CS(16位)代码段DS(16位)数据段

SS(16位)堆栈段ES(16位)附加段

4、段寄存器和相应存放偏移地址的寄存器之间的默认组合

偏移

CS

IP

SS

SP或BP

DS

BX、DI、SI或一个16位数

ES

DI(用于串指令)

第三章

1、七种寻址方式(举例)

立即寻MOVAX,3069H

寄存器寻MOVAL,BH

在内存中的五种寻址

直接寻MOVAX,[2000H]

寄存器间接寻MOVAX,[BX]

寄存器相对寻MOVAX,COUNT[SI]或者MOVAX,[SI+COUNT](不推荐)

基址变址寻址MOVAX,[BP][DI]

相对基址变址寻址MOVAX,MASK[BX][SI]

2、指令系统

I.数据传送指令

(1)通用数据传送指令

MOV传送

MOVSX带符号扩展传送

用源操作数的符号位来填充目的操作数的高位数据位。

例:

MOVSXEAX,CL

把CL寄存器中的8位数,符号扩展为32位数,送到EAX寄存器中。

MOVZX带零扩展传送

恒用0来填充目的操作数的高位数据位

MOVZXDX,AL

把AL寄存器中的8位数,零扩展成16位数,送到DX寄存器中。

PUSH进栈

入栈时高位字节先入栈,低位字节后入栈。

SP指向栈顶。

POP出栈

以“先进后出”方式工作。

SP指向栈顶

PUSHA/PUSHAD所有寄存器进栈

PUSHA(16位):

进栈次序为:

AX,CX,DX,BX,SP,BP,SI,DI

PUSHAD(32位):

EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI

POPA/POPAD所有寄存器出栈

POPA(16位):

出栈次序为:

DI,SI,BP,SP,BX,DX,CX,AX

POPAD(32位):

EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX

XCHG交换

XCHGAX,BX交换AX与BX中的数据

(2)累加器专用传送指令

(只限于使用累加器)

IN输入

INAX,28H

MOVDATA_WORD,AX

把端口28的内容经过AX传送到存储单元DATA_WORD中。

OUT输出

OUT5,AL

从AL寄存器输出一个字节到端口5。

XLAT换码

(3)地址传送指令

LEA有效地址送寄存器

LDS指针送寄存器和DS

LES指针送寄存器和ES

LFS指针送寄存器和FS

LGS指针送寄存器和GS

LSS指针送寄存器和SS

1LEA

LEAREG,SRC

把源操作数的有效地址送到指定的寄存器中

2LDS、LES、LFS、LGS、LSS指针送寄存器和段寄存器指令

LDSREG,SRC

把SRC的偏移地址放到REG中,又把偏移地址(SRC+2)放到DS中

(4)标志寄存器传送指令

LAHF标志送AH

SAHFAH送标志寄存器

PUSHF/PUSHFD标志进栈

POPF/POPFD标志出栈

(5)类型转换指令

CBW字节转换为字

CWD字转换为双字

CDQ双字转换为4字

BSWAP字节交换

以CWD为例,把AX的内容扩展到DX,DX为高位,AX为低位。

如果AX最高有效位=1,(DX)=0FFFFH;

如果AX的最高有效位=0,(DX)=0。

CBW为AL扩展至AH,形成AX

CDQ为EAX扩展至EDX,形成EDX:

EAX

II.算术指令

(1)加法指令

ADD加法

ADDDST,SRC

把DST与SRC的和放入DST中

ADC带进位加法

ADCDST,SRC

把DST、SRC与进位标志CF的和放入DST中

INC加1

INCOPR

OPR加一

XADD交换并相加

XADDDST,SRC

首先把DST与SRC交换,然后把两数之和放入DST中。

(2)减法指令

SUB减法

SUBDST,SRC

把DST与SRC的差放入DST中

SBB带借位减法

SBBDST,SRC

把DST、SRC以及CF的差放入DST中

DEC减1

DECOPR

OPR减一

NEG求补

NEGOPR

把OPR按位操作求反以后加一,一般用于求相反数。

CMP比较

与SUB、SBB一样都是减法操作,不同的是CMP并不保留减法结果,只是改变标志位。

CMPXCHG比较并交换

CMPXCHG8B比较并交换8字节

(3)乘法指令

MUL无符号数乘法

IMUL有符号数乘法

乘法指令的目的操作数必须是累加器。

两个8位数相乘,结果放在AX中。

两个16位数相乘,高位放在DX中,低位放在AX中。

(4)除法指令

DIV无符号数除法

IDIV有符号数除法

除法指令与乘法指令的寻址方式相同

字节运算时目的操作数在AX中,结果的商放在AL中,余数放在AH中

字运算时目的操作数在DX高位字和AX低位字中,结果的商放在AX中,余数放在DX中

III.逻辑指令

(1)逻辑运算指令

AND逻辑与

OR逻辑或

NOT逻辑非

XOR异或

TEST测试

在这里,TEST与AND的功能是一样的,但是TEST的结果并不保存

(2)移位指令(结合课本73页的图以后课后习题3.27来复习)

SHL逻辑左移

每次将操作数的最高位移出并移到CF,最低位补0

SAL算数左移

SAL指令与SHL指令完全相同

SHR逻辑右移

每次将操作数的最低位移出并移到CF,最高位补0

SAR算数右移

把目的操作数的高位向低位移,空出的高位用最高位(符号位)填补,并把最低位存入CF

ROL循环左移

把目的操作数的最高位移到最低位,并进入CF中。

ROR循环右移

把目的操作数的最低位移到最高位,并进入CF中。

RCL带进位循环左移

整体往左移动,原CF的值填补空出的位,移出的位再进入CF

RCR带进位循环右移

整体往右移动,原CF的值填补空出的位,移出的位再进入CF

(3)串处理指令

MOVS串传送

包括MOVS、MOVSB、MOVSW、MOVSD四种格式,该操作指令的功能为:

把DS:

SI所指向的变量传送到ES:

DI中。

一般用法为:

LEAsi,source_buffer把源缓冲区的偏移地址放入si中

LEAdi,dest_buffer把目的缓冲区的偏移地址放入di中

CLD清除方向位DF,方向为从低位向高位进行

MOVcx,n设置要传送的变量个数n

REPmovsb重复串传送,从ds:

si到es:

di

CMPS串比较

该指令是把指针DS:

SI和ES:

DI所指向字节、字或双字的值相减,CX为比较的个数,并用所得到的差来设置有关的标志位,变址寄存器SI和DI也将根据标志位DF的值作相应增减。

想要比较两个字符是否相等,就要观察ZF的情况,为1则相等,为0则不想等

SCAS串扫描

该指令是用指针ES:

DI所指向字节、字或双字的值与相应的AL、AX或EAX的值相减,用所得到的差来设置有关标志位。

与此同时,变址寄存器DI还将根据标志位DF的值进行增减。

LODS从串取

从由指针DS:

SI所指向的内存单元开始,取一个字节、字或双字进入AL、AX或EAX中,并根据标志位DF对寄存器SI作相应增减。

该指令的执行不影响任何标志位。

STOS存入串

该指令是把寄存器AL、AX或EAX中的值存于以指针ES:

DI所指向内存单元为起始的一片存储单元里,并根据标志位DF对寄存器DI作相应增减。

该指令不影响任何标志位。

INS串输入

该指令是从某一指定的端口接受一个字符串,并存入一片存储单元之中。

输入端口由DX指定,存储单元的首地址和读入数据的个数分别由ES:

DI和CX来确定。

在指令的执行过程中,还根据标志位DF对寄存器DI作相应增减。

OUTS串输出

该指令是把一个字符串输入到指定的输出端口中。

输出端口由DX指定,其输出数据的首地址和个数分别由DS:

SI和CX来确定。

在指令的执行过程中,还根据标志位DF对寄存器SI作相应增减。

REP重复

REPE/REPZ相等、为零则重复

REPNE/REPNZ不相等、不为零则重复

对于以上重复指令,若cx=0则停止执行重复。

(4)控制转移指令

①无条件转移JMP

3条件转移

1根据单个条件设置转移

JZ(JE)等于零(相等)则转移

JNZ(JNE)不等于零(不想等)则转移

JS结果为负则转移

JNS结果为正则转移

JO溢出则转移

JNO不溢出则转移

JP(JPE)奇偶位为1则转移

JNP(JPO)奇偶位为0则转移

JB(JNAE、JC)低于(不高于,等于,进位为1)则转移

JNB(JAE、JNC)不低于(高于,等于,进位为0)则转移

2无符号数比较

JNB(JAE、JNC)不低于(高于,等于,进位为0)则转移

JBE(JNA)低于,等于(不高于)则转移

JNBE(JA)不低于,等于(高于)则转移

3有符号数比较

JL(JNGE)小于(不大于,等于)则转移

JNL(JGE)不小于(大于,等于)则转移

JLE(JNG)小于,等于(不大于)则转移

JNLE(JG)不小于,等于(大于)则转移

③循环设置

LOOP循环

LOOPZ/LOOPE为零/等于时循环

LOOPNZ/LOOPNE不为零/不等于时循环

共同的循环退出条件为CX=0

4子程序

CALL调用

RET返回

5中断

INT中断

(4)处理机控制与杂项操作指令

①标志处理指令

CLC进位位设置为0

STC进位位设置为1

CLD方向标志位设置为0

STD方向标志位设置为1

CLI中断标志位设置为0

STI中断标志位设置为1

②其他

NOP无操作

第三章例题

例3.50设X、Y、Z均为双精度数(双字),它们分别存放在地址为X,X+2,Y,Y+2,Z,Z+2的存储单元中,存放时高位字在高地址中,低位字在低地址中。

在808680286中可用下列指令序列实现W<

—X+Y+24-Z

并用W和W+2单元存放运算结果。

movax,x;

把x的低位放入ax中

movdx,x+2;

把x的高位放入ax中

addax,y;

该语句实现x+y,结果放入ax中

adcdx,y+2;

带进位加法x+y,加上进位标志CF

addax,24;

ax+24即x+y的低位加上24

adcdx,0;

高位加0

subax,z;

x+y+24的低位与z的低四位相减

sbbdx,z+2;

x+y+24高位与z的高四位带借位减

movw,ax;

把最终结果放入w中

movw+2,dx

例3.56算术运算综合举例,计算:

(V-(X*Y+Z-540))/X

其中X,Y,Z,V均为16位带符号数,已分别装入X,Y,Z,V单元中,要求上式计算结果的商存入AX,余数存入DX寄存器。

编制程序如下:

movax,x;

把x放入ax中

imuly;

x乘以y,高位放入dx中,低位放入ax中

movcx,ax;

把结果存入cx,bx中

movbx,dx

movax,z;

把z放入ax中

cwd;

ax转化为双字类型,AX的符号位去填充DX

addcx,ax;

该步实现x*y+z,加法指令

adcbx,dx;

带进位加法指令

subcx,540;

该步实现x*y+z-540,减法指令

sbbbx,0;

带借位减法指令

movax,v;

把v放入ax中

subax,cx;

该步实现v-(x*y+z-540),减法指令

sbbdx,bx;

idivx;

该步实现(v-(x*y+z-540))/x,有符号数除法

商放入AX中,余数放入DX中

第三章习题解释

3.4

(1)这是立即寻(AX)=1200H

(2)这是寄存器寻(AX)=(BX)=0100H

(3)这是直接寻AX的物理地址=DS*10H+1200H=21200H,字内容(21200)=4C2AH

(4)这是寄存器间接寻AX的物理地址=DS*10H+0100H=20100H,字内容(20100)=3412H

(5)这是寄存器相对寻AX的物理地址=DS*10H+0100H+1100=21200H

字内容(21200)=4C2AH

(6)这是基址变址寻AX的物理地址=DS*10H+0100H+0002H=20102H

字内容(20102)=7856H

(7)这是相对基址变址寻AX的物理地址=DS*10H+1100H+0100H+0002H=21202H

字内容(21202)=65B7H

3.8

因为立即寻和寄存器寻不在内存中寻找,因此不存在物理地址。

(1)立即数寻址无

(2)寄存器寻址无

(3)直接寻址20100H

物理地址=DS*10H+100H

(4)直接寻址20050H

物理地址=DS*10H+50H

(5)寄存器间接寻址20100H

(6)寄存器间接寻址21100H

物理地址=ES*10H+100H

(7)寄存器间接寻址15010H

物理地址=SS*10H+100H(BP关联的段寄存器为SS)

(8)寄存器间接寻址200A0H

物理地址=DS*10H+A0H

(9)寄存器相对寻址2010AH

物理地址=DS*10H+100H+10d+

(10)寄存器相对寻址20150H

物理地址=DS*10H+100H+50H

(11)基址变址寻址201A0H

物理地址=DS*10H+100H+A0H

(12)相对基址变址寻址201F0H

物理地址=DS*10H+100H+A0H+50H

3.27

(1)DX=0000000001011100B

开始时DX=0000000010111001B,逻辑右移1位,最高位为零,因此最高位补零

(2)DX=0000000000010111B

开始时DX=0000000010111001B,算术右移3位,最高位补三个0

(3)DX=0000010111001000B

开始时DX=0000000010111001B,逻辑左移3位,最低位补三个-0

(4)DX=0000000001110010B

开始时DX=0000000010111001B,DL=10111001B,逻辑左移1位,DL的最低位补0

因此DL=01110010B,因此DX=0000000001110010B

(5)DX=0001000000010111B

开始时DX=0000000010111001B,循环右移3位,分别从低位移动3个二进制位到高位,

(6)DX=0000000011001101B

开始时DX=0000000010111001B,DL=10111001B,循环左移3位,分别从高位移动3个二进制位到高位,DL=11001101B,DX=0000000010111001B

(7)DX=0000000010111001B

开始时DX=0000000010111001B,DH=00000000,算术左移1位,DH=00000000

因此DX=0000000010111001B

(8)DX=0000010111001100B

开始时DX=0000000010111001B,带进位循环左移3位,移动的同时把进位标志CF挤出来,最终CF=0。

因此DX=0000010111001100B

(9)DX=0000000011011100B

开始时DX=0000000010111001B,DL=10111001B,带进位循环右移1位,移动的同时把进位标志CF挤出来,最终CF=1,DL=11011100B,DX=0000000011011100B

第四章

1.伪操作

伪操作又成为伪指令,它们不像机器指令那样是在程序运行期间由计算机来执行的,而是在汇编程序对源程序汇编期间由汇编程序处理的操作,它们可以完成如处理器选择、定义程序模式、定义数据、分配存储区、指示程序结果等功能。

2.数据定义及存储器分配伪操作

I.数据类型定义

DB(定义字节,占用1字节)、DW(定义字,占用2字节)、DD(定义双字,占用34字节)、DQ(定义4字,占用8字节)

II.复制操作符DUP

例4.10

ARRAY1DB2DUP(0,1,2,?

ARRAY2DB100DUP(?

它与ARRAY1DB0,1,2,?

0,1,2,?

是等价的

例4.11

ARRAY3DB100DUP(0,2DUP(1,2),0,3)

它与ARRAY3DB100DUP(0,1,2,1,2,0,3)是等价的

III.表达式赋值伪操作EQU

其功能为赋值,EQU伪操作中的表达式名是不允许重复使用的,EQU复制在内存中不占用空间。

IV.地址计数器与对准伪操作

地址计数器$

地址计数器$用来保存当前正在汇编指令的偏移地址。

ORG伪操作

ORG伪操作用来设置当前地址计数器的值。

如常数表达式的值为n,ORG伪操作可以使下一个字节的地址成为常数表达式的值n

例如:

datasegment

ADB10H

ORG100H

BDB10H

dataends

如果A的偏移地址为0000,那么B的偏移地址为0101.

V.数值回送操作符

SEG回送变量或标号的段地址值

OFFSET回送变量或标号的偏移地址值

实验报告二的解释

开始时org100h,下一条语句yournamedb'

20093592zhengzhiwei'

的偏移量为100h,

从13ED:

0100开始为该语句的第一位,db定义了字符串yourname中的字符为字节变量,各占一个字节,因此yourname占19个字节,末位的i在13ED:

0112,数字0-9的ASCII码为30h-39h,因此从13ED:

0100开始的8位为3230303933353932

小写字母a-z的ASCII码为61h-7ah,因此从13ED:

0108开始的11位字母为7A68656E677A6869776569,

data_bytedb10,4,10h中10为10进制数,转换为16进制,为0Ah,db定义字节变量

因此从13ED:

0113开始的3个数分别为0A0410

data_worddw100,100h,-5中的变量为字变量,100为十进制,转换为十六进制,为0064h,100h依然为0100h,-5为带符号数,负数,把5转换为2进制,0000000000000101,求反码,1111111111111010,反码加一为补码,1111111111111011,转换为十六进制,为FFFB,因此从13ED:

0116开始的6个字节为,6400,0001,FBFF

data_dwdd3*20,0fffdh中的变量为双字变量,占用4个字节,3*20=60=3Ch,在内存中表示为3C000000,0fffdh在内存中表示为,FDFF0000。

011C开始的8个字节为3C000000,FDFF0000

messagedb'

ABC'

中的变量为字节变量,大写字母A-Z的ASCII码为,41-5A,因此,’ABC’在内存中表示为414243.从13ED:

0124开始的3个字节为414243

msgdw'

AB'

中的变量为字变量,’AB’为一个字,高位为41,低位为42,因此从13ED:

0127开始的2个字节为4241.

array1db2dup(0,1,2,?

),这是字节变量的二维数组,内容为0,1,2,?

,0,1,2,?

因此在内存中表示为0001020000010200,从13ED:

0129开始的8个字节为0001020000010200

array3db2dup(0,2dup(3,4),0,5),这是字节变量的三维数组,内容为0003040304000500030403040005,从13ED:

0131开始的14个字节为0003040304000500030403040005。

array2dw1,2,3,这是自变量的数据,内容为1,2,3.在内存中表示为0100,0200,0300.因此,从13ED:

013F开始的6个字节为010002000300。

最后一位为13ED:

0134

byte_arraylabelbyte、constantequ256、squareconequ256*256这三条语句不占用内存空间。

array4dw$,$+4,3,4,$+4中的变量为字变量,$用于计算当前位置的偏移地址,从图书可知,第一个$所在偏移地址为0145,因此在内存中表示为4501,第二个$所在的偏移地址为0147,$+4为014B,因此在内存中表示为4B01,而3,4则表示为03000400,因为最后一位00所在偏移地址为014C,因此下一位$的偏移地址为014D,$+4为0151,因此在内存中表示为5100。

从13ED:

0145开始的20个字节为45014B01

第五章

1.二进制转十六进制

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2