《汇编语言基本编程.pdf》由会员分享,可在线阅读,更多相关《汇编语言基本编程.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!汇编语基本编程1、指令通寄存器:AX(AH,AL),BX(BH,BL),CX(CH,CL),DX(DH,DL),SP,BP,SI,DI段寄存器:DS、SS、ES、CS直接寻址:DISP寄存器间接寻址:BX、BP、SI、DI基址寻址:BX+DISP、BP+DISP变址寻址:SI+DISP、DI+DISP基址加变址寻址:BX+SI+DISP、BX+DI+DISP、BP+SI+DISP、BX+DI+DISP只有基址寄存器BP的默认堆栈段为SS,其他律为DS物理地址=段地址(DS/SS)*16+偏移地址(EA
2、)EA(有效地址)=(BX/BP)+(SI/DI)+DISP数据传送指令功能助记符格式操作传送MOV d,s(d,s类型相同,8/16位)交换XCHG d,s 压堆栈PUSH sSP SP-2,(SP)s弹出堆栈POP dd(SP),SPSP+2查表转换XLATAL DS,BX+AL取有效地址LEA reg16(16位通寄存器),s(存储器操作数)reg16 s的有效地址取逻辑地址(指针)LDS reg16,sreg16(s)的偏移地址,DS(s)的段地址取逻辑地址(指针)LES reg16,sreg16(s)的偏移地址,ES(s)的段地址输IN 累加器(AL/AX),端地址累加器(端地址)输
3、出OUT 端地址,累加器(端地址)累加器逻辑运算和移位指令:名称格式功能逻辑与AND d,s置零逻辑或OR d,s置逻辑异或XOR d,s对部分位取反逻辑NOT d取反测试TEST d,sd 与 s 想与ZF=1 结果为 0ZF=0 结果不为 0算术左移SAL d,count符号数乘以 2算数右移SAR d,count有符号数除以 2欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!算数右移SAR d,count有符号数除以 2逻辑左移SHL d,count同算数左移逻辑右移SHR d,count符号数除以 2向左循环ROL d,count最位循环移
4、最低位向右循环ROR d,count最低位循环移最位算数运算指令:分类助记符格式功能加法ADD d,s(不能段寄存器)ADC d,s(不能段寄存器)INC d相加带进位相加加减法SUB d,sSBB d,sDEC dCMP d,s相减借位减法减较乘法MUL sIMUL s符号数乘法有符号数乘法程序控制指令:助记符格式功能条件转移JMPCALL条件转移(顺序执不再回到循环)程序调单标志JZ/JEJNZ/JNEJP/JPEJNP/JPO结果是0/相等结果不是0/不相等1的个数是偶数1的个数是奇数符号数JA/JNBEJAE/JNBJB/JNAEJBE/JNA于/不低于等于于或等于/不低于低于/不于等
5、于低于或等于/不于有符号数JG/JNBEJGE/JNLJL/JNGEJLE/JNG于/不于等于于或等于/不于于/不于等于于或等于/不于基本编程框架:欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!;数据段DATAS SEGMENT ;定义变量DATAS ENDS;堆栈段STACKS SEGMENT ;堆栈空间预置STACKS ENDS;代码段CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS;对段寄存器地址进说明START:MOV AX,DATAS ;初始化段寄存器地址开始 MOV DS,AX MOV
6、AX,STAK MOV SS,AX ;初始化段寄存器结束 ;插代码 MOV AH,4CH ;返回DOS操作系统 INT 21HCODES ENDS ;CODE段定义结束 END START ;程序结束DOS系统功能调单字符显(2号功能)MOV DL,字符MOV AH,02HINT 21H字符串输(9号功能)MOV DX,字符串偏移量MOV AH,09HINT 21H这的字符串偏移量要以MYM或$结尾例:D1 DB HELLO WORLDD2 DB 0$.MOV DX,OFFSET D1 ;指向要输出的地址,即从D1开始输出MOV AH,09HINT 21H返回操作系统(4CH号功能)MOV A
7、H,4CHINT 21H汇编语编程注意事项移位运算时,所移动位数于1,必须CL转换MOV CL,3SAL DX,CL ;左移三位 乘以8LOOP循环指令编程:将CX-1CX,若CX 0则转移到标号地址去执,否则执LOOP后的指令欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!(注意定要先确定循环次数,赋值给CX)格式:MOV CX,100 ;指定循环100次L1:.LOOP L1 LOOP相当于下这两条指令的组合,只是LOOP不影响标志位DEC CXJNZ 标号条件转移指令,常常与CMP配合使 关于些基本的调试:-u:查看汇编代码;-t:执下条语句-g+的内存:跳转到该内存所对应的语句(再t命令执该条命令)-r:查看寄存器的内容(后可直接接寄存器的名称,就只查看该寄存器的内容)-d:后接内存地址,查看改地址后8*16个字节空间的地址(每16个字节,共8)后是对应的字符.表没有该数字对应的字符
限制150内