汇编语言-第七章总结

更灵活的定位内存地址的方法

  1. and和or指令
  • and指令: 逻辑与指令、按位进行与运算。
    Example:
    mov al, 01100011B
    and al, 00111011B
    执行后: al = 0010001B
    通过该指令可将操作对象的响应为设为0,其他不变。
  • or指令:逻辑或指令,按位进行或运算。
    Example:
    mov al, 01100011B
    or al, 00111011B
    执行后: al = 01111011B
    通过该指令可以将操作对象的相应位设为1,其他位不变
  1. 关于ASC||码
    键盘'a'→内存61H→显存(软件从内存中取出数据,并送到显存)61H→工作在文本模式下的显卡,用ASC||解释显存中的内容'a'→显卡驱动显示器'a'

  2. 以字符形式给出的数据
    关键词db可以定开辟一或多字节空间

db 61H      ;定义了一个字节型数据
db 'unIX'  ;相当于 `db 75H, 6EH, 49H, 58H`,定义了四个字节型数据
  1. 大小写转换
    一个字符转换为小写:
mov al, [bx]        ;[bx]为将要转换的内存单元
or al, 00100000B
mov [bx], al

一个字符转换为大写:

mov al, [bx]          ;[bx]为将要转换的内存单元
and al, 11011111B
mov [bx], al
  1. 不同的寻址方式
[bx]、 [si]、[di]
[bx+idata]、[si+idata]、[di+idata]
[bx+si]、[bx+di]
[bx+si+idata]、[bx+di+idata]

其中: idata[bx]可以理解将idata为数组地址,[bx]为下标

  1. 注意地方
  • SI和DI不能够分成两个8为寄存器来使用:
  • 程序刚开始时(ds尚未被赋值时),源程序中第一个段的段地址为:ds+10H;
  • 一般来说,在需要暂存数据的时候,我们都应该使用栈;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容