最近对汇编语言非常入迷,于是开始了汇编的旅程。博客上不知道搞些什么东西,所以就将自己写的一些初级代码传上来了,初学者摆弄一下这些最基本的程序还是可以的。 ;-------------------------------------------;最经典的 hello,world ! ;-------------------------------------------.model small ;定义程序的存储模型.data ;定义数据段hello db 'hello,world !',13,10,'$'.code ;定义代码段main proc farstart: mov ax,@data ;载入数据段 mov ds,ax mov dx,offset hello ;打印字符串 mov ah,09h int 21h mov ah,4ch ;返回DOS int 21hmain endp end start ;-----------------------------------------------;随机数产生器,间隔一定时间产生80以内的随机数;-----------------------------------------------.MODEL SMALL.DATAOUTBUF DB 4 DUP(?)TXT1 DB "Create Random data(below 80)2007-4-5",13,10,'$'TXT2 DB "Input 'Q' or 'q' to exit",13,10,'$' ENTER DB 13,10,'$'.CODEMAIN PROC FAR ;================主程序开始START: MOV AX,@DATA MOV DS,AX CALL PLINE MOV DX,OFFSET TXT1 MOV AH,09H INT 21H MOV DX,OFFSET TXT2 MOV AH,09H INT 21H CALL PLINE LOP1: MOV SI,OFFSET OUTBUF MOV AH,0 INT 1AH ;读取时钟 MOV AL,DL ;毫秒 MOV AH,0 MOV BL,80; ;除以80 DIV BL MOV AL,AH MOV AH,0 MOV BL,10 DIV BL CMP AL,00H ;是否是 0,高位的 0 去掉 JZ ZERO ADD AL,30H MOV [SI],AL INC SIZERO: ADD AH,30H MOV [SI],AH INC SI MOV BYTE PTR [SI],20H ;设置空格 INC SI MOV BYTE PTR [SI],'$' MOV DX,OFFSET OUTBUF MOV AH,09H ;输出结果 INT 21H MOV CX,500 ; 时间间隔设置DONE1: MOV BX,0FFFFHDONE: DEC BX JNE DONE LOOP DONE1 MOV AH,6 ;接收输入(直接控制台I/O),Q,q 退出 MOV DL,0FFH INT 21H CMP AL,'Q' JE EXIT CMP AL,'q' JE EXIT JMP LOP1EXIT: MOV AH,4CH INT 21H;打印 ----------------------------------------------PLINE PROC NEAR ; ==============子程序开始 MOV DL,2DH ;字符'-'的ASCLL码 MOV CX,40PRT: MOV AH,02H INT 21H LOOP PRT MOV DX,OFFSET ENTER MOV AH,09H INT 21H RETPLINE ENDP ; ==============子程序结束 MAIN ENDP ; ==============主程序结束 END START ;一下又学这个,一下又学那个,真不知道这么做对还是错,不过就是感兴趣;也就是 汇编/C/C++ 这三门语言了。相信很多人也和我一样,不知道该学什;么,JAVA/C++/DEPHI/C# …… 一大堆的确很烦人,你说呢

评论