[026][汇编语言]ASCII字符显示、字母大小写转换

and or 指令

  • and 将相应位设为0
  • or 将相应位设为1
Mov al,01100011B And al,00111011BMov al,01100011B Oral,00111011B

[026][汇编语言]ASCII字符显示、字母大小写转换
文章图片
and or 指令 ASCII 码
  • 文本编辑软件 从 内存 中取出 61H ,将其送到 显卡 的 显存 中;
  • 工作在文本模式下的 显卡,用 ASCII码 的规则解释 显存 中的内容;
  • 61H 被当作字符 'a';
  • 显卡 驱动 显示器,将字符 ‘a’ 的图像画在屏幕上;
ASCII 码查询
  • http://ascii.911cha.com/
显示ASCII 字符
assume cs:code,ds:datadata segment db 'unIX' db 'foRX' data endscode segment start:mov al,'a' mov bl,'b' mov ax,4c00H int 21H code ends end start

[026][汇编语言]ASCII字符显示、字母大小写转换
文章图片
程序从 DS+10H=076AH 段开始.png
  • DS寄存器内容为075AH
  • 程序从DS+10H=076AH段开始
  • data段是程序的第一个段,data段的段地址也为076AH
写入对应的ASCII [026][汇编语言]ASCII字符显示、字母大小写转换
文章图片
写入对应ASCII码 ASCII字母大小写转换
assume cs:codesg,ds:datasgdatasg segment db'BaSiC' db'iNfOrMaTiOn' datasg endscodesg segment start:mov ax,datasg mov ds,axmov bx,0 mov cx,5 s:mov al,[bx] and al,11011111B mov [bx],al inc bx loop smov bx,5 mov cx,11 s0: mov al,[bx] oral,00100000B mov [bx],al inc bx loop s0mov ax,4c00H int 21Hcodesg ends end start

[026][汇编语言]ASCII字符显示、字母大小写转换
文章图片
data 段的数据.png [026][汇编语言]ASCII字符显示、字母大小写转换
文章图片
ASCII 码大小写转换.png
  • 程序执行前, 根据DS+10H找到data段的段地址
  • ASCII码 大小写字符区别只在 二进制的第5位
A0100 0001 a0110 0001大写字母ABCD 第5位是 0 小写字母abcd 第5位是 1一律大写 and al,11011111B 一律小写 oral,00100000B

    推荐阅读