多语言展示
当前在线:1911今日阅读:145今日分享:43

用16位汇编写最简单的Hello world

本人初学汇编,写了一个Hello world用来练习。我的操作系统是64位win8 所以用了DOSbox 的16位环境来运行。
工具/原料
1

MASM

2

DOSbox

方法/步骤
1

首先是数据段:其中db是指字节,汇编中常用的定义包括db 、 dw  、DD,其中DB为1个字节,DW为字,即2个字节,DD为双字,即4个字节。'hello world$' 表示一个字符串,在汇编中单引号以及双引号都可以用来定义字符串。$为字符串结束符,相当于C语言的'\0',最后ends表示数据段结束。

2

之后是代码段:这里把程序中定义的段与对应的段寄存器关联起来,start这里是一个标号,根据end后面的标号判断这里是程序的开始位置(相当于C语言的main入口),这里把数据段的地址放到数据段寄存器ds中,dx中放将要显示数据的偏移地址,调用21号中断的9号功能来显示字符串。

3

全部代码:DATAS  SEGMEN     tab db 'hello world$'DATAS  ENDSCODES  SEGMENTASSUME    CS:CODES,DS:DATASSTART:MOV  AX,DATASMOV  DS,AXLEA  DX,tabMOV  AH,9INT  21HMOV  AH,4CHINT  21HCODES  ENDSEND   START

4

最后把这个文件放到MASM里的根目录里,用ML.exe编译生产16位的可执行文件。

5

用DOSbox打开这个hello.exe,结果如下:

注意事项

汇编语言运行在基于DOS操作系统的环境下

推荐信息