首页 > 其他 > 详细

[汇编语言]-第五章[bx]和loop指令

时间:2014-02-10 19:20:02      阅读:334      评论:0      收藏:0      [点我收藏+]

1- [bx]和内存单元的描述 [0]表示内存单元, 他的偏移地址为0

  mov ax,[0] 将一个内存单元的内容送入到ax.这个内存单元的长度为2字节(字单元),存放一个字,偏移地址为0,段地址在ds中.

  mov al,[0] 将一个内存单元的内容送入到al,这个内存单元的长度为1字节(字节单元),存放一个字节,偏移地址为0,段地址在ds中.

  完整的描述一个内存单元,需要两种信息:(1)内存单元地址(2)内存单元的长度(类型)

  mov ax,[bx] 将一个内存单元的内容送入到ax, 这个内存单元的长度为2字节(字单元),存放一个字,偏移地址在bx中,段地址在ds中.

  mov al,[bx] 将一个内存单元的内容送入到al, 这个内存单元的长度为1字节(字节单元),存放一个字,偏移地址在bx中,段地址在ds中.

2- 我们定义得描述性符号"()" 表示一个寄存器或一个内存单元中得内容.

  (ax) 表示ax中得内容,(al)表示al中得内容

  (20000H)表示内存20000H单元的内容,()中的内存单元的地址为物理地址

  (ds)*16+(bx)

    ()中的元素可以有三种类型

    1>寄存器名 (ax)

    2>段寄存器名(ds)

    3>内存单元的物理地址(一个20位数据) (20000H) ,((ds)*16+(bx))

      不正确的表示(1000H), (2000:0),((ds):1000H)

3- 约定符号idata表示常量

  mov ax,[idata]就代表mov ax,[1] mov ax,[2] mov ax,[3]等

  mov bx,idata 就代表 mov bx,1  mov bx,2  mov bx,3等

4- loop

  实现2^12 (N * 2 可以用N + N实现)

bubuko.com,布布扣
 1 assume cs:code
 2 code segment
 3      mov ax, 2
 4      mov cx, 11
 5  s: add ax, ax
 6      loop s    //(1) (cx) = (cx) -  1; (2)判断(cx)不为零则转到s所标示的地址处执行.如为0则执行下一条指令
 7      
 8      mov ax, 4c00H
 9      int 21h
10 code ends
11 end
bubuko.com,布布扣

 

 

bubuko.com,布布扣
 1 assume cs:code
 2 code segment
 3     mov ax, 0ffffH //大于9FFFH的十六进制数据,A000H,B000H,FFFEH,FFFFH在书写时是以字母开头的,而在汇编程序中, 数据不能以字母开头.所以要在前面加0,如0FFFE
 4     mov ds, ax
 5     mov bx, 6H
 6     
 7     mov al, [bx]
 8     mov ah, 0
 9     
10     mov dx, 0
11     
12     mov cx, 3
13 s:add dx, ax
14     loop sa
15     
16     mov ax, 4c00H
17     int 21H
18 code ends
19 end
20     
bubuko.com,布布扣

[汇编语言]-第五章[bx]和loop指令

原文:http://www.cnblogs.com/galoishelley/p/3543120.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!