第4章(2)微机原理与汇编语言.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:92 大小:2.3MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第4章(2)微机原理与汇编语言.ppt

第4章(2)微机原理与汇编语言.ppt

预览

免费试读已结束,剩余 82 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

2.3节目录2.3.1--2.3.3(位)2.3.1逻辑运算指令(1)逻辑运算指令(2)以下几条指令判断从键盘输入的字符是否为'Y',但对键入的字符大写或小写不加区别,同样对待。MOVAH,1;接收由键盘输入的一个字符INT21H;字符的ASCII码存ALANDAL,11011111B;屏蔽第5位,转换为大写字母CMPAL,'Y';字符是否为''Y''?JEYES;如是,转到YES…;否则,…YES:…2.3.2移位指令(1)移位指令(2)移位指令(3)移位指令(4)(end)例4.8将一个16位无符号数乘以10。该数原来存放在以FACTOR为首地址的两个连续的存储单元中(低位在前,高位在后)。因为FACTOR10=(FACTOR8)+(FACTOR2),故可用左移指令实现以上乘法运算。编程如下:MOVAX,FACTOR;(AX)←被乘数(设(AX)=1234H)SHLAX,1;(AX)=FACTOR2MOVBX,AX;暂存BXSHLAX,1;(AX)=FACTOR4SHLAX,1;(AX)=FACTOR8ADDAX,BX;(AX)=FACTOR10HLT以上程序的执行时间大约需26个时钟。如用乘法指令编程,执行时间将超过130个时钟。例4.9将一个16位无符号数除以512。该数原来存放在以DIVIDAND为首地址的两个连续的存储单元中。MOVAX,DIVIDANDMOVCL,9SHRAX,CLHLT2.3.3循环移位指令(1)循环移位指令(2)(end)2.4节目录2.4.1无条件转移指令(1)短转移的转移范围无条件转移指令(2)无条件转移指令(3)无条件转移指令(4)(end)2.4.2条件转移指令(1)条件转移指令(2)条件转移指令(3)(2).比较无符号数高/低(条件为一个标志或标志组合)助记符标志说明JB/JNAE/JCCF=1低于/不高于不等于(<)JNB/JAE/JNCCF=0不低于/高于或等于(≥)JBE/JNACF=1或ZF=1低于或等于/不高于(≤)JNBE/JACF=0且ZF=0不低于不等于/高于(>)指令举例:AX和BX为无符号数,比较大小,将较大的数放入AX中。CMPAX,BX;JNBNEXT;如AX≥BX,不处理XCHGAX,BX;AX<BX,AX与BX交换NEXT:……3.比较有符号数大/小(条件为标志组合)助记符标志说明JL/JNGESF≠OF且ZF=0小于/不大于且不等于(<)JNL/JGESF=OF不小于/大于或等于(≥)JLE/JNGSF≠OF或ZF=1小于或等于/不大于(≤)JNLE/JGSF=OF且ZF=0不小于且不等于/大于(>)指令举例:AX和BX为有符号数,比较大小,将较大的数放入AX中。CMPAX,BX;JNLNEXT;如AX≥BX,不处理XCHGAX,BX;AX<BX,AX与BX交换NEXT:……2.4.3循环控制指令(1)循环控制指令(2)(end)2.4.4子程序调用及返回指令(1)子程序调用及返回指令(2)子程序调用及返回指令(3)子程序调用及返回指令(4)子程序调用及返回指令(5)子程序调用及返回指令(6)(end)目录1---6(串操作)串操作(1)传送串操作(2)串操作(3)串操作(4)存串串操作(5)读串、比较串操作(6)搜索、重复前缀串操作(7)REP串操作(8)REPZ/REPNZ串操作(9)前缀注释例4.10将数据段中首地址为BUFFER1的200个字节传送到附加数据段首地址为BUFFER2的内存区中。使用字节串传送指令的程序段如下:LEASI,BUFFER1;(SI)←源串首地址指针LEADI,BUFFER2;(DI)←目的串首地址指针MOVCX,200;(CX)←字节串长度CLD;清方向标志DFREPMOVSB;传送200个字节HLT;停止串操作(10)例题串操作(11)注释(end)作业补充题:设物理地址为96FF8H,偏移地址任意,则段地址可取:①8600H②900H③96FFH④9700H()课后习题(P150)课后习题(P150)课后习题(P150)课后习题(P150)SHL/SAL指令SHR指令SAR指令ROL指令ROR指令RCL指令RCR指令逻辑运算指令16位数转换为ASCII码JMP指令:段内相对转移JMP指令:段内寄存器间接转移JMP指令:段内存储器间接转移JMP指令:段间直接转移JMP指令:段间间接转移串传送MOVSB(正向DF=0)串传送MOVSW(反向DF=1)LODS(正向DF=0)STOS(正向DF=0)REPSTOSB(正向DF=0)REPMOV