当前位置:鱼C工作室 >汇编语言 > 查看文章

更灵活的定位内存地址的方法01 – 零基础入门学习汇编语言32

第七章:更灵活的定位内存地址的方法01

 

让编程改变世界

Change the world by program


 

引言

前面,我们用[0]、[bx]的方法,在访问内存的指令中,定位内存单元的地址。

在这一章中,我们主要讲解一些更灵活的定位内存地址的方法和相关的编程方法。

我们的讲解将通过具体的问题来进行。

 

and指令和or指令

首先我们介绍两条指令and和or,因为我们下面的例程中要用到它们。

 

and指令:逻辑与指令,按位进行与运算。

mov al, 01100011B

and al, 00111011B

执行后

al = 00100011B

and指令的功能

通过该指令可将操作对象的相应位设为0,其他位不变。

例如:

将al的第6位设为0:and al, 10111111B

将al的第7位设为0:and al, 01111111B

将al的第0位设为0:and al, 11111110B

 

or 指令:逻辑或指令,按位进行或运算。

mov al, 01100011B

and al, 00111011B

执行后

al = 01111011B

or指令的功能

通过该指令可将操作对象的相应位设为1,其他位不变。

例如:

将al的第6位设为1:and al, 01000000B

将al的第7位设为1:and al, 10000000B

将al的第0位设为1:and al, 00000001B

 

关于ASCII码

世界上有很多编码方案,有种方案叫做ASCII编码,是在计算机系统中通常被采用的。

简单地说,所谓编码方案,就是一套规则,它约定了用什么样的信息来表示现实对象。

比如说,在ASCII编码方案中,用 61H 表示“a”,62H表示“b”。

 

一种规则需要人们遵守才有意义。

一个文本编辑过程中,就包含着按照ASCII编码规则进行的编码和解码。

在文本编辑过程中,我们按一下键盘的a键,就会在屏幕上看到“a”。这是怎样一个过程呢?

 

以字符形式给出的数据

我们可以在汇编程序中,用 “……”的方式指明数据是以字符的形式给出的,编译器将把它们转化为相对应的ASCII码。

请看以下程序

assume ds:data
 
data segment
    db 'unIX' 
    db 'foRK'
data ends
 
code segment
start:  
    mov al,'a'
    mov bl,'b'
 
    mov ax,4c00h
    int 21h
code ends                       
end start

上面的源程序中:

“db ‘unIX’ ” 相当于“db 75H,6EH,49H,58H”, “u”、 “n”、 “I”、 “X”的ASCII码分别为75H、6EH、49H、58H;

“db ‘foRK’ ” 相当于“db 66H,6FH,52H,4BH”, “u”、 “n”、 “I”、 “X”的ASCII码分别为66H、6FH、52H、4BH;

“mov al,’a’”相当于“mov al,61H”,”a”的ASCII码为61H;

“mov al,’b’”相当于“mov al,62H”,”b”的ASCII码为62H。

分页阅读: 1 2 下一页
为您推荐

报歉!评论已关闭.