汇编网首页登录博客注册
Wednesday的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
好友圈
文章收藏
友情链接

[2007-09-14 21:47] 经典程序“hello,world”

将“hello,world”程序作为第一个编写的程序,现在已经成为一种珍贵的传统。该程序最早出现在由Brian W.Kernighan 和 Dennis M.Ritchie编写的《C编程语言》一书中。《C编程语言》是最权威的C语言教科书,两位作者正是大名鼎鼎的C语言发明人,昵称K&R。
 
    另外的解释就是用“hello,world”是因为我们希望某一天由人类自己发明的计算机能真正对世界说一声:"世界你好!",这是软件工程师的一种愿望!
    用汇编实现了这个经典的“hello,world”,一起为这个目标努力。

assume cs:code,ds:data,ss:stack

  data segment
    db 'hello,world',0;字符串以0结尾
  data ends

  stack segment
    dw 10h dup(0)
  stack ends

code segment
start:;程序入口
       mov ax,stack;初始化自己的栈
       mov ss,ax
       mov sp,10h

       mov dh,12;显示行
       mov dl,30;显示列
       mov cl,1010b;显示属性(颜色)
       mov ax,data
       mov ds,ax
       mov si,0;
       call show_Str;调用显示字符串子程序

       mov ax,4c00H
       int 21h

show_Str:;显示字符串子程序,显示一个以 '0' 结尾的字符串
       push ax;保护现场
       push bx
       push cx
       push si
       push es

       mov al,160;计算显示位置
       mul dh
       mov bx,ax
       mov ax,2
       mul dl
       add bx,ax
       mov ax,0b800h
       mov es,ax
       push cx
shows:;将字符串数据写入显存指定位置
       mov al,ds:[si]
       mov cl,al
       mov ch,0
       jcxz show_Ret;显示完成
       mov es:[bx],cl
       inc bx
       pop  cx
       mov ch,0
       mov ax,cx
       mov es:[bx],al
       push cx
       inc bx
       inc si    
       jmp short shows;继续显示

show_Ret:;结束返回
       pop cx
       pop es
       pop si
       pop cx
       pop bx
       pop ax
       ret

code ends
end start
评论次数(2)  |  浏览次数(1075)  |  类型(春发夏繁) |  收藏此文  | 

[  fishboy   发表于  2007-09-17 15:38  ]

hello , world!

[  Wednesday   发表于  2007-09-19 16:12  ]

[  fishboy   发表于  2007-09-17 15:38  ] hello , world!
------------------------------------------
恩,
查了查 The C Programming Language 
[Brian W.Kernighan & Dennis M.Ritchie] 英文版,确实是!

而且,它里面的字母都是小写:hello,world 
就这样儿。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码