C语言里的helloworld<br><pre id="best-content-777094407" accuse="aContent" class="best-text mb-10" style="margin-top: 10px; margin-bottom: 10px; padding: 0px; font-family: "PingFang SC", "Lantinghei SC", "Microsoft YaHei", arial, 宋体, sans-serif, tahoma; white-space: pre-wrap; word-wrap: break-word; font-size: 16px; line-height: 29px; color: rgb(51, 51, 51); min-height: 55px;">#include<stdio.h><br>int main()<br>{printf("hello world!\n");<br>return 1;}调用了一次函数</pre>
不需要操心:<br>1、指令代码、变量、常量如何存放<br>2、函数放哪,怎么调用,参数如何传递<br>3、表达式的运算步骤和如何实现<br><br>
汇编实现<span style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; white-space: pre-wrap;">Hello World程序</span><pre style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-size: 12px; color: rgb(0, 0, 0); font-family: "Courier New" !important;"><span style="margin: 0px; padding: 0px; line-height: 1.5 !important;">DATAS SEGMENT<br> STRING DB </span><span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0); line-height: 1.5 !important;">'Hello World!'</span>,13,10,<span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0); line-height: 1.5 !important;">'$'</span><span style="margin: 0px; padding: 0px; line-height: 1.5 !important;"><br> ;定义了一个字符串,标号是STRING,其值是字符串首字符的地址。<br> ;DB表示的是字符串中每个字符的都是一个字节,每往后加1的时候,地址偏移量加1.<br> ;</span>13<span style="margin: 0px; padding: 0px; line-height: 1.5 !important;"> CR 回车 ;</span>10<span style="margin: 0px; padding: 0px; line-height: 1.5 !important;"> LF 换行 ;$作为字符串的结束符<br>DATAS ENDS<br>CODES SEGMENT<br> ASSUME CS:CODES,DS:DATAS<br>START:<br> MOV AX,DATAS<br> MOV DS,AX <br> LEA DX,STRING;LEA 获取偏移量,并将其存入DX<br> MOV AH,</span>9<span style="margin: 0px; padding: 0px; line-height: 1.5 !important;"><br> INT 21H ;INT 21H是DOS中断的调用,其执行的操作根据AH里面的值来确定。<br> ;</span>9<span style="margin: 0px; padding: 0px; line-height: 1.5 !important;">,表示的是输出字符串,其地址为DS:DX ;4CH带返回码结束<br> MOV AH,4CH<br> INT 21H<br>CODES ENDS<br> END START</span></pre>
<b>思考:</b><br>为什么程序设计语言学习总是从hello word!开始<br>通过hello world 程序能获取哪些信息?<br>构造指令语句测试环境的意义?
以此为基础,建立汇编指令学习测试:<br>汇编指令pc端测试框架<pre style="font-size: 12px; margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: rgb(0, 0, 0); font-family: "Courier New" !important;"><span style="margin: 0px; padding: 0px; line-height: 1.5 !important;">DATAS SEGMENT<br> OUTPUT DB </span><span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0); line-height: 1.5 !important;">'Hello World!'</span>,13,10,<span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0); line-height: 1.5 !important;">'$'</span><span style="margin: 0px; padding: 0px; line-height: 1.5 !important;"><br>DATAS ENDS<br>CODES SEGMENT<br> ASSUME CS:CODES,DS:DATAS<br>START:<br> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br> ; 自己的代码,需要输出的部分送OUTPUT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br> ;输出output 字符输出<br> MOV AX,DATAS<br> MOV DS,AX <br> LEA DX,OUTPUT;LEA 获取偏移量,并将其存入DX<br> MOV AH,</span>9<span style="margin: 0px; padding: 0px; line-height: 1.5 !important;"><br> INT 21H ;INT 21H是DOS中断的调用,其执行的操作根据AH里面的值来确定。<br> ;</span>9<span style="margin: 0px; padding: 0px; line-height: 1.5 !important;">,表示的是输出字符串,其地址为DS:DX
;结束程序并将执行权交给操作系统<br> MOV AH,4CH ;4CH带返回码结束程序返回操作系统。<br> INT 21H<br>CODES ENDS<br> END START</span></pre>