嵌入式.h 发表于 2017-8-26 13:28

【汇编笔记】ASCII码应用和大小写转换+DIV除法指令的使用

本帖最后由 嵌入式.h 于 2017-9-6 14:52 编辑

ASSUME CS:HIKE, DS:DATA; 假设代码段,数据段
DATA SEGMENT;数据段开始
   DB 'HiKeRy';defined byte 定义6个字节型字符数据ASCII码对应数:72,105,75,101,82,121    hex:48H,69H,4BH,65H,52H,79H
         DB 'www.52pojie.cn';defined byte 定义14个字节字符数据ASCII码对应数hex:77,77,77,2E,35,32,70,6F,6A,69,65,2E,63,6E,
DATA ENDS;数据段结束
HIKE SEGMENT;代码段开始
   GO:MOV AX,DATA;将数据段送入寄存器中、
   MOV DS,AX;设置ds指向DATA数据段
   MOV BX,0;设置偏移地址为0,我们常用bx寄存器来存放偏移地址
   MOV CX,6;循环6次、等下我们要将HiKeRy全部转换成小写字母、cx寄存器存放循环的次数
DO: MOV AL,;将DS:的字节数据放入AL(低8位寄存器)
         OR AL,00100000B;将AL的数据和00100000相或、OR指令: 位与位相或、都为0才为0、其他都为1
   MOV ,AL;把处理后的数据放回内存中、
         INC BX;偏移地址自增1、类似高级语言的(i++)
         LOOP DO;CX-1、 跳到do标记地址处继续执行程序、cx为0则向下执行
         MOV CX,5;设置循环次数5次、这次我们要www.52pojie.cn中的pojie转成大写
         ADD BX,6;把偏移地址定位到p这个ASCII码的内存单元
ONLY:MOV AL,;数据送入交换寄存器
   AND AL,11011111B;这次转换用的是逻辑与、与逻辑或、逻辑相反、位与为相与、都为1才为1、其他都为0
         MOV ,AL ;再把处理后的数据放会内存
         INC BX;偏移地址再增1
         LOOP ONLY;又要循环了……
         MOV AX,4C00H;上面的工作完成了、程序返回。
         INT 21H;
HIKE ENDS;代码段结束了
END GO;程序结束了、我们去编译、debug调试看看
         

编译后、debug 我们的程序先看看我们定义在内存中的CSCII码


继续调试


*********************************************************************************************
DIV指令
ASSUME CS:HIKE, DS:DATA;演示代码-我们只需要假设一个代码段和一个数据段就好了
DATA SEGMENT;数据段开始
    DD 03e8h ; defined double word 开辟一个双字形数据空间里面存放1000(十进制)、16进制为03e8“被除数32bit”
        DW 100 ; defined word字形数据100(十进制)16进制为64“除数16bit”
        DW 0;defined word 定义一个字形数据空间、用来存放结果
DATA ENDS;数据段结束
HIKE SEGMENT;代码段开始
   GO:MOV AX,DATA;把数据段放到ax寄存器中、GO:为程序的入口标志(程序从这里开始执行)
      MOV DS,AX; 把数据段放入段寄存器中
          MOV AX,DS:;把一个word(字形数据)放入ax(16位寄存器)、所以这里取的是两个内存单元数据(ds: ds:)\被除数的低16位
          MOV DX,DS:;把高16位放入dx寄存器中、《被除数为32位所以要用两个16位寄存器存放、ax存放低16位、dx放高16位》
          DIV WORD PTR DS:;除以数100、word ptr:数据长度
          MOV DS:,AX;把结果放入内存中
          MOV AX,4C00H;程序返回
          INT 21H
HIKE ENDS ;代码段结束
END GO ;程序结束
debug调试:

fq645122 发表于 2017-8-26 14:33

可以,笔记很有用的

妲己再美终是妃 发表于 2017-8-26 15:17

感谢分享笔记。
笔记大多都是干货。

bopo 发表于 2017-8-28 09:54

真心不错

平淡哥 发表于 2017-8-28 22:20


感谢分享笔记。
页: [1]
查看完整版本: 【汇编笔记】ASCII码应用和大小写转换+DIV除法指令的使用