云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 微机原理与接口技术 期末复习总结 - 图文

微机原理与接口技术 期末复习总结 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 22:27:06

微机原理与接口技术

端口40H的内容55H送入寄存器AL中 (2) 输出指令OUT

格式:OUT 端口,累加器

OUT DX,累加器

(CPU写数据到外设当中)

例:OUT 68H,AX ;(69H,68H)←(AX)

OUT DX,AL ;((DX))←(AL)

在使用间接寻址的IN/OUT指令时,要事先用传送指令把I/O端口号设置到DX寄存器 如: MOV DX,220H

IN AL,DX;将220H端口内容读入AL

如 OUT DX,AL,(AL=66H);将累加器AL中的数据字节66H,输出到DX指定的端口 3、目标地址传送指令

(1) LEA

传送偏移地址

格式:LEA reg,mem ; 将指定内存单元的偏移地址送到指定寄存器

LEA BX, [2000H] ; 把2000H单元的偏移地址送到BX,执行后BX=2000H 要求:

1) 源操作数必须是一个存储器操作数;

2) 目的操作数必须是一个16位的通用寄存器。

例:LEA BX,[SI+10H] 设:(SI)=1000H

则执行该指令后,(BX)=1010H

?注意以下二条指令差别: LEA BX,BUFFER MOV BX,BUFFER

前者表示将符号地址为BUFFER的存储单元的偏移地址取到 BX中;后者表示将BUFFER存储单元中的内容取到 BX中。

下面两条指令等效: LEA BX,BUFFER

MOV BX, OFFSET BUFFER

其中OFFSET BUFFER表示存储器单元BUFFER的偏移地址。

二者都可用于取存储器单元的偏移地址,但LEA指令可以取动态的地址,OFFSET只能取静态的地址。 (2)LDS

功能:完成一个地址指针的传送,地址指针包括段地址部分和偏移量部分。前两个字节偏移量部分送入一个16位的指针寄存器或变址寄存器,后两字节,段地址送入DS, 例如:指令“LDS SI,[2000H]”,将当前数据段2000H及2001H单元的内容送SI,同时将2002H及2003H单元的内容送DS (3)LES

功能:除将段地址送入ES外,其他与LDS指令相同 标志寄存器传送

⑴ LAHF (LOAD AH WITH FLAG)

13 / 66

微机原理与接口技术

将标志寄存器中的SF、ZF、AF、PF和CF(即低8位)传送至AH寄存器的指定位,空位没有定义。

(2)SAHF (STORE AH WITH FLAG) 将寄存器AH的指定位,送至标志寄存器的SF、ZF、AF、PF和CF位。根据AH的内容,影响上述标志位,对O、D和I无影响。 (3)PUSHF(Push flag)

将标志寄存器压入堆栈顶部,同时修改堆栈指针(此指令不影响标志寄存器) (4)POPF(Pop flag)

将堆栈顶部的一个字传送到标志寄存器中,同时修改堆栈指针 (完成出栈入栈的地址应该相同PUSHF与POPF是成对出现的,入栈指针前SP送入标志寄存器,出栈后将SP送入寄存器,看标志寄存器的值是否相同) 二、算术运算指令(会影响标志位) 1、 加法指令

(1) 不带进位的加法指令ADD 格式: ADD OPRD1,OPRD2

源操作数:8/16位通用寄存器,存储器,立即数 目的操作数:8/16位通用寄存器,存储器

ADD 寄存器,立即数

ADD AL,30 AL与立即数30相加,结果放在AL中 ADD 存储器1/寄存器1,存储器2/寄存器2 实例:

ADD AL,30H (AL与立即数30相加,结果放在AL中)

ADD SI,[BX+20H] (SI与BX+20H及BX+21H两单元组成的一个字相

加,结果放在SI中)

ADD CX,SI (SI的内容与CX的内容相加,结果放在CX中) ADD [DI],200H (立即数200H与存储器内容相加,结果放在存储器中)

?ADD指令对6个状态标志均产生影响。 例:已知(BX)=D75FH

指令 ADD BX,8046H 执行后,状态标志各是多少?

D75FH = 1110 0111 0101 1111 8046H = 1000 0000 0100 0110

1 1 11 11 0110 0111 1010 0101

结果:因为最高位有进位,故CF=1;最后8位有4个1,故PF=1;最后4位向第5位有进位,故AF=1;运算结果不全为0,故ZF=0;最高位为0,故SF=0;有溢出,故OF=1 加法指令结果存放在OPRD1 判断溢出与进位(重点?)

从硬件的角度:默认参与运算的操作数都是有符号数,当两数的符号位相同,而和的结果相异时有溢出,则OF=1,否则OF=0 (2) 带进位的加法ADC

ADC指令在形式上和功能上与ADD类似,只是相加时还要包括进位标志CF的内容,例如: ADC AL,68H ; AL←(AL)+68H+(CF) ADC AX,CX ;AX←(AX)+(CX)+(CF)

14 / 66

微机原理与接口技术

ADC BX,[DI] ;BX←(BX)+[DI+1][DI]+(CF) ADC指令一般用于16位以上的多字节数字相加 (3)加1指令INC 格式:INC reg/mem

功能:类似于C语言中的++操作:对指定的操作数加1 例: INC AL

INC SI

INC BYTE PTR[BX+4] (知道字节加1) 注:本指令不影响CF标志。 (4)非压缩BCD码加法调整指令AAA AAA指令的操作:

如果AL的低4位>9或AF=1,则: ① AL←(AL)+6,(AH)←(AH)+1,AF←1 ② AL高4位清零 ③ CF←AF

否则AL高4位清零

(5)压缩BCD码加法调整指令DAA

?两个压缩BCD码相加结果在AL中,通过DAA调整得到一个正确的压缩BCD码. ?指令操作(调整方法):

若AL的低4位>9或AF=1 则(AL)←(AL)+6,AF←1 若AL的高4位>9或CF=1 则(AL)←(AL)+60H,CF←1

?除OF外,DAA指令影响所有其它标志。 ?DAA指令应紧跟在ADD或ADC指令之后。 2、 减法指令

(1)不考虑借位的减法指令SUB 格式: SUB OPRD1,OPRD2 操作: dest←OPRD1-OPRD2

注:1.源和目的操作数不能同时为存储器操作数 2.立即数不能作为目的操作数 3.不能进行段寄存器减法 指令例子: SUB AL,60H

SUB [BX+20H],DX SUB AX,CX

(2)考虑借位的减法指令SBB

SBB指令主要用于多字节的减法。 格式: SBB dest, src

操作: dest←(dest)-(src)-(CF) 指令例子:

SBB AX,CX

SBB WORD PTR[SI],2080H

15 / 66

微机原理与接口技术

SBB [SI],DX (3)减1指令DEC

作用类似于C语言中的”--”操作符。 格式:DEC opr 操作:opr←(opr)-1 在循环程序中,该指令对地址指针和循环计数值进行修改(执行一次,减1,直到位0) 指令例子:

DEC CL

DEC WORD PTR[DI+2] 由DI+2寻址的数据段中,字存储单元内容减1 DEC SI

(4)求补指令NEG

格式: NEG opr

操作: opr← 0-(opr)(相当于用0作被减数的SUB指令一样,但进位标志为1)

对一个操作数取补码相当于用0减去此操作数,故利用NEG指令可得到负数的绝对值。 相当于: NOT opr INC opr

例:若(AL)=0FCH,则执行 NEG AL后,

(AL)=04H,CF=1 (5)比较指令CMP

格式: CMP OPRD1,OPRD2 操作: OPRD1-OPRD2

CMP也是执行两个操作数相减,但结果不送目标操作数,其结果只反映在标志位上。

有符号数,进行比较后,溢出标志位OF与符号标志位SF的值相同时,则OPRD1?OPRD2,否则OPRD1<OPRD2

无符号数,CF=0,则OPRD1?OPRD2,若CF=1,OPRD1<OPRD2 指令例子:

CMP AL,0AH CMP CX,SI

CMP DI,[BX+03]

注意:(1)目的操作数不能为立即数

(2)源操作数和目的操作数不能同时为存储器 (6)十进制调制指令

例如十进制数12,用BCD码表示0001 0010,十进制的每一位用二进制数表示(4

16 / 66

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

微机原理与接口技术 端口40H的内容55H送入寄存器AL中 (2) 输出指令OUT 格式:OUT 端口,累加器 OUT DX,累加器 (CPU写数据到外设当中) 例:OUT 68H,AX ;(69H,68H)←(AX) OUT DX,AL ;((DX))←(AL) 在使用间接寻址的IN/OUT指令时,要事先用传送指令把I/O端口号设置到DX寄存器 如: MOV DX,220H IN AL,DX;将220H端口内容读入AL 如 OUT DX,AL,(AL=66H);将累加器AL中的数据字节66H,输出到DX指定的端口 3、目标地址传送指令 (1) LEA 传送偏移地址 格式:LEA reg,me

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com