ORG 1000h,ORG为定位语句。通知汇编程序,从表达式中给出有效地址开始,依次有效后读取目标块,如跳转到START的目标指令应放在代码块。
汇编语言org指令怎么用??
伪指令org用来规定目标程序存放单元的偏移量。比如,如果在源程序的第一条指令前用了如下指令:
org 200h
那么,汇编程序会把指令指针的ip的值设成200h,即目标程序的第一个字节放在200h处,后面的 内容则顺序存放,除非遇上另一个org 语句
比方 你写:
org 0030h
here: .....
.....
则表示 从 here 开始的这段代码都放在 0030H的 内存区域;
伪操作指令ORG语句规定了程序段或数据块在该段内的起始地址,其格式为
ORG expression
其中表达式expression的值即为段内的起始地址或偏移地址,从此地址起连续存放程序或数据.
本实验程序代码如下:(DMA的偏移地址为0,所以不考虑)
stack segment stack
dw 64 dup(?)
stack ends
code segment
assume cs:code
start:
mov al,00h;
out odh,al;发复位命令
mov al,00h;发4000到 通道0,先发低地址00h,再发高地址40h
out 00h,al;
mov al,40h
out 00h,al
//注意 8237有规定 先送低8位,再送高8位,所以必须发两次到01h端口
mov al,0Ah;向通道0 设置当前字节计数器 初值
out 01h,al
mov al,00h
out 01h,al
mov al,00h;向通道1 设置当前地址寄存器 为3000h,先发00h,再发30h
out 02h,al
mov al,30h
out 02h,al
mov al,0Ah;向通道1 设置当前字节计数器 初值:0Ah=10
out 02h,al
mov al,00h
out 01h,al
mov al,88h;//设置模式寄存器(通道0方式字)
out 0Bh,al
mov al,85h;设置 模式寄存器(通道1方式字)
out 0Bh,al
mov al,81h;//设置控制命令字
out 08h,al
mov al,04h;设置请求字
out 09h,al
mov al,00h;设置屏蔽字(开屏蔽),如果设置为01h,也不会出现问题的。
out oFh,AL
code ends
ends start
运行前:先设置内存初值:
E 4000
11(空格为下一个,enter为结束)
22
33
...
AA
g=0000:2000