向内存0:200-0:23F 依次传送数据0-63(3FH),程序中只能使用9条指令,包括"mov ax,4c00H" "int 21H"
assume cs:code
code segment
mov ax,0020H
mov ds,ax ;指向单元0020:0000
mov cx,40H ;或mov cx,64 0-63 有64个数据即40H (H代表十六进制) 大家写源程序时候必须分清楚十进制与16进制
mov bx,0
s: mov [bx],bx ;或mov [bx],bl
inc bx ; bx =bx+1 bx=1时,[bx],bx = 0020:0001单元处数据为1
loop s bx=2时, …………20:2处为2
mov ax,4c00h
int 21h
code ends
end
_____________________________________________________________________________
assume cs:code
code segment ; 因为程序载入后CS:IP会指向程序的入口,所以mov ax,cs其实就是指向指令开始处的段地址
mov ax,cs ;或mov ax,code code是段名,代表段地址
mov ds,ax
mov ax,0020H
mov es,ax
mov bx,0
sub cx,5 (debug载入程序后,初始化CX会显示出程序的长度,减去最下面两行返回的指令(长度为5))
s: mov al,[bx] ;mov al,ds:[bx] ,没段前缀时默认为DS作为段地址
mov es:[bx],al
inc bx ; bx = bx+1
mov ax,4c00h
int 21h
code ends
end |