汇编语言的 注释啊啊 ,追加的 10
Block db 256dup(55h)
data ends
code segment
assumecs:code, ds:data
start proc near
mov ax, data
mov ds, ax
mov bx, offset Block
mov cx,256
Again:
mov [bx], bl
inc bx
Loop Again
jmp $
code ends
end start 展开
代码有点小问题,改动了一点点后,执行结果是将代码段中的256个值为55的数分别改为:0,1,2,3,4,……一直到255(十六进制为FF),如下:
data segment;数据段
Block db 256 dup(55h);申请首地址为block的256个字节地址空间,每个字节的值均为55h
data ends
code segment;代码段
assume cs:code, ds:data
start procnear;程序开始,将之改成“start:”
mov ax, data
mov ds, ax;这两句的意思是将数据段地址赋给ds
mov bx, offset Block;将首地址block的值赋给bx
mov cx,256;设置cx的值,即为循环次数256次
Again: ;自定义的标号
mov [bx], bl ;将bl的值存入bx所指向的数据段中
inc bx;bx自加1,相当于C语言中的C++
Loop Again;此步是CX-1到CX=0,即循环256次后跳出循环
jmp $;跳转到当前的地址, 所以它是一个死循环,相当于在此原地踏步。如果要让它能正常结束,应该将这句改为“mov ah,4ch int 21h”两句
code ends
end start
Blockdb 256 dup(55h)申请block的256个地址空间,55h我不懂什么意思,如果是55的话就是循环重复申请五十五次这种空间
dataends
codesegment
assumecs:code, ds:data
startprocnear程序段开始
movax, data初始程序
movds, ax初始化程序断代码
movbx, offset Block把block的首地址放入bx中
mov cx,256把256存入cx计数存储器中
Again:
mov[bx], blbl的值放入bx所指向的地址空间中
incbxbx自减一。
LoopAgain重复上面的之到256次后跳出循环
jmp$结束程序标志我想是
codeends
endstart
程序含义:应该是把block低位的值全部写输出来