《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 解決方案 > 一個(gè)匯編hello world程序

一個(gè)匯編hello world程序

2017-06-10
關(guān)鍵詞: 匯編

TITLE ***HELLO,WORLD進(jìn)階程序之選擇分支 BY LLUCT***

DATA SEGMENT ;定義數(shù)據(jù)段
MSG1 DB '***WELCOME TO MY PROGRAM BY LLUCT***','$'
;定義輸出的第一個(gè)字符串信息,字符串必須用DB定義,$為結(jié)束標(biāo)志
MSG2 DB '1:BASIC MESSAGE 2:ADVANCED MESSAGE','$'
;定義輸出的字符串信息:選擇菜單
MSG3 DB 'PLEASE CHOOSE:','$'
;定義輸出的字符串信息:選擇前綴
MSG4 DB 'HELLO,WORLD!^-^','$'
;定義輸出的字符串信息:分支1的信息
MSG5 DB 'THIS IS MY FIRST ASM_86 PROGRAM! @^-^@','$'
;定義輸出的字符串信息:分支2的信息
ERRMSG DB 'CHOOSE ERROR! -_-b','$'
;定義輸出的字符串信息:選擇錯(cuò)誤信息
DATA ENDS ;數(shù)據(jù)段結(jié)尾

CODE SEGMENT ;定義代碼段
ASSUME CS:CODE ;規(guī)定CS的內(nèi)容
ASSUME DS:DATA ;規(guī)定DS的內(nèi)容

START: MOV AX,DATA ;程序從START開始
MOV DS,AX ;DS置初值,DATA的段地址

CALL ENTER ;調(diào)用顯示回車換行子程序
LEA DX,MSG1 ;輸出第一個(gè)字符串的偏移地址
CALL DISPCHS ;調(diào)用顯示字符串子程序
CALL ENTER ;調(diào)用顯示回車換行子程序
CALL ENTER ;這個(gè)...同上啊^-^

LEA DX,MSG2 ;輸出第二個(gè)字符串的偏移地址
CALL DISPCHS ;調(diào)用顯示字符串子程序

AGAIN: CALL ENTER ;定義AGAIN標(biāo)號(hào).用于選擇錯(cuò)誤循環(huán)

LEA DX,MSG3 ;輸出第三個(gè)字符串的偏移地址
CALL DISPCHS ;調(diào)用顯示字符串子程序

MOV AH,01H ;調(diào)用1號(hào)功能:從鍵盤輸入一個(gè)字符并回顯
INT 21H ;完成輸入回顯
CMP AL,'1' ;輸入的字符和1相比較
JE BASICP ;如果相等,轉(zhuǎn)移到BASICP標(biāo)號(hào)(JE=Jump if Equal)
CMP AL,'2' ;輸入的字符和2相比較 ||
JE ADVANP ;如果相等,轉(zhuǎn)移到ADVANP標(biāo)號(hào)(JE=如果相等就轉(zhuǎn)移)
JMP ERROR ;否則就無條件轉(zhuǎn)移到ERROR標(biāo)號(hào)

EXIT: MOV AH,4CH ;4C號(hào)功能調(diào)用:終止當(dāng)前程序并返回調(diào)用程序
INT 21H ;返回DOS

BASICP: CALL ENTER ;什么,還要解釋啊.暈-_-!!!
LEA DX,MSG4 ;輸出第三個(gè)字符串的偏移地址
CALL DISPCHS ;調(diào)用顯示字符串子程序
CALL ENTER ;..........
JMP EXIT ;無條件轉(zhuǎn)移到EXIT標(biāo)號(hào)

ADVANP: CALL ENTER ;55555555
LEA DX,MSG5 ;解釋了四次,應(yīng)該懂了吧
CALL DISPCHS ;調(diào)用顯示字符串子程序
CALL ENTER ;再問就死給你看
JMP EXIT ;無條件轉(zhuǎn)移到EXIT標(biāo)號(hào)

ERROR: CALL ENTER
LEA DX,ERRMSG ;輸出選擇錯(cuò)誤信息
CALL DISPCHS ;調(diào)用顯示字符串子程序
MOV DL,07H ;輸出ASCII碼的報(bào)警(響鈴)控制符BEL(07H)
CALL DISPCH ;調(diào)用顯示單個(gè)字符子程序
CALL ENTER
JMP AGAIN

DISPCH PROC NEAR 
;顯示單個(gè)字符子程序,NEAR說明子程序和主程序在同一個(gè)代碼段中(現(xiàn)無主程序調(diào)用)
MOV AH,02H ;2號(hào)功能調(diào)用:顯示器輸出字符
INT 21H ;完成輸出顯示
RET ;返回
DISPCH ENDP ;子程序結(jié)尾

ENTER PROC NEAR ;顯示回車換行子程序
MOV DL,0DH ;輸出ASCII碼的回車控制符CR(0DH)
CALL DISPCH ;調(diào)用顯示單個(gè)字符子程序
MOV DL,0AH ;輸出ASCII碼的換行控制符LF(0AH)
CALL DISPCH ;調(diào)用顯示單個(gè)字符子程序
RET ;返回
ENTER ENDP ;子程序結(jié)尾

DISPCHS PROC NEAR
;顯示字符串子程序,NEAR說明子程序和主程序在同一個(gè)代碼段中(現(xiàn)無主程序調(diào)用)
MOV AH,09H ;9號(hào)功能調(diào)用:顯示字符串
INT 21H ;完成輸出顯示
RET
DISPCHS ENDP

CODE ENDS ;代碼段結(jié)尾
END START ;結(jié)束匯編

;把以上代碼復(fù)制到記事本等文本程序中,并保存.(如helloch.asm)
;編譯:masm helloch.asm
;連接:link helloch.obj
;執(zhí)行:helloch.exe

======================================================

title ***hello,world進(jìn)階之字符串輸入輸出 by lluct***

data segment ;定義數(shù)據(jù)段
input db 100 dup(?)
;定義輸入的字符串,字符串必須用db定義,長度為100個(gè)字節(jié)
msg1 db 'Hello,','$'
;定義輸出的前綴字符串信息,字符串必須用db定義,$為結(jié)束標(biāo)志(24h)
msg2 db ',Welcome to here!','$'
;定義輸出的后綴字符串信息
headmsg db 'PLEASE INPUT YOUR NAME:','$'
;開始顯示的字符串信息
data ends ;數(shù)據(jù)段結(jié)尾

code segment ;定義代碼段
assume cs:code ;規(guī)定cs的內(nèi)容
assume ds:data ;規(guī)定ds的內(nèi)容

start: mov ax,data ;程序從start開始
mov ds,ax ;ds置初值,data的段地址
mov si,0 ;變址寄存器置初值0

call enter ;調(diào)用顯示回車換行子程序
lea dx,headmsg ;輸出開始顯示的字符串的偏移地址
call dispchs ;調(diào)用顯示字符串子程序
repeat: mov ah,01h 
;定義repeat標(biāo)號(hào),用于循環(huán)輸入單個(gè)字符.調(diào)用1號(hào)功能:從鍵盤輸入一個(gè)字符并回顯
int 21h ;完成輸入回顯
cmp al,0dh ;輸入的字符和CR(回車)比較
je exit ;如果等于回車就轉(zhuǎn)移到exit
mov input[si],al ;把a(bǔ)l的值傳送到input的si地址中(好像是這樣吧)


inc si ;si加1
jmp repeat ;無條件轉(zhuǎn)移到repeat


exit: call enter
mov input[si],24h ;給輸入完成的字符串加上結(jié)束標(biāo)志($)
call enter 
lea dx,msg1 ;輸出前綴字符串的偏移地址
call dispchs ;調(diào)用顯示字符串子程序
lea dx,input ;輸出剛才輸入的字符串
call dispchs 
lea dx,msg2
call dispchs
call enter

mov ah,4ch ;4c號(hào)功能調(diào)用:終止當(dāng)前程序并返回調(diào)用程序
int 21h ;返回dos

enter proc near ;顯示回車換行子程序
mov dl,0dh ;輸出ascii碼的回車控制符cr(0dh)
call dispch 
mov dl,0ah ;輸出ascii碼的換行控制符lf(0ah)
call dispch
ret ;返回
enter endp ;子程序結(jié)束

dispch proc near
mov ah,02h ;2號(hào)功能調(diào)用:顯示器輸出字符
int 21h ;完成輸出顯示
ret ;返回
dispch endp

dispchs proc near
mov ah,09h ;9號(hào)功能調(diào)用:顯示字符串
int 21h ;完成輸出顯示
ret ;返回
dispchs endp

code ends ;代碼段結(jié)尾
end start ;結(jié)束匯編

;把以上代碼復(fù)制到記事本等文本程序中,并保存.(如heinout.c)
;編譯:masm heinout.asm
;連接:link heinout.obj
;執(zhí)行:heinout.exe


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美成人黑人xx视频免费观看| 国产精品sss| 中文av一区特黄| 欧美在线观看视频一区二区| 99精品视频免费| 亚洲激情欧美激情| 亚洲国产一区二区在线| 激情文学综合丁香| 国产一区二区三区最好精华液| 国产精品乱人伦中文| 欧美四级剧情无删版影片| 欧美极品在线播放| 欧美成人精品h版在线观看| 麻豆av福利av久久av| 久久精品国产亚洲一区二区| 小嫩嫩精品导航| 午夜性色一区二区三区免费视频 | 亚洲欧美日韩另类| 亚洲一级电影| 亚洲一区日韩在线| 亚洲尤物在线视频观看| 亚洲一区免费观看| 亚欧成人精品| 久久成人羞羞网站| 久久久中精品2020中文| 久久久精品国产99久久精品芒果| 久久国产精品99国产精| 久久久久网站| 噜噜噜久久亚洲精品国产品小说| 美女精品在线观看| 欧美激情偷拍| 欧美日韩亚洲不卡| 国产精品国产三级国产专播精品人 | 国产精品老牛| 国产模特精品视频久久久久| 国产日韩欧美一二三区| 国产有码一区二区| 在线成人www免费观看视频| 亚洲国产精品va在线看黑人动漫| 91久久久一线二线三线品牌| 亚洲精品一区二区三区蜜桃久| 日韩视频久久| 亚洲欧美中文另类| 久久成人精品| 亚洲理伦在线| 亚洲免费在线看| 亚洲在线成人精品| 99视频一区| 亚洲自拍另类| 亚洲第一免费播放区| 亚洲美女中文字幕| 亚洲男人第一av网站| 久久国产视频网| 欧美成年人在线观看| 欧美日韩一区二区视频在线观看| 国产精品拍天天在线| 国产在线欧美日韩| 亚洲乱码国产乱码精品精可以看| 亚洲在线一区二区三区| 久久精品人人爽| 亚洲一区二区在线| 久久天堂成人| 欧美视频免费| 国外成人在线| 一区二区高清在线| 亚洲欧美在线x视频| 亚洲高清不卡在线| 亚洲一级在线| 可以免费看不卡的av网站| 欧美日韩国产黄| 国产亚洲二区| 日韩午夜av电影| 久久福利电影| 亚洲一区二区三区精品动漫| 久久久久久一区二区三区| 欧美日韩在线播放一区| 国模叶桐国产精品一区| 亚洲最新视频在线| 亚洲国产高清aⅴ视频| 亚洲欧美日本国产有色| 美女诱惑一区| 国产欧美日韩视频在线观看| 亚洲三级视频在线观看| 午夜一区不卡| 亚洲婷婷免费| 欧美成人免费在线观看| 国产精品影院在线观看| 亚洲精品影院在线观看| 欧美中在线观看| 亚洲欧美日韩国产成人精品影院| 免费一级欧美在线大片| 国产精品亚洲产品| 亚洲精品韩国| 亚洲国产精品成人综合色在线婷婷| 亚洲午夜在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产日韩欧美麻豆| 一区二区三区www| 亚洲免费av片| 久久伊人精品天天| 国产精一区二区三区| 亚洲最黄网站| 一本到12不卡视频在线dvd| 久久久综合网站| 国产欧美精品国产国产专区| 99热免费精品在线观看| 日韩亚洲欧美高清| 欧美成在线观看| 黄色精品免费| 欧美一区二视频| 午夜日韩电影| 国产精品区一区二区三区| 日韩亚洲在线| 国产精品99久久久久久人| 欧美电影美腿模特1979在线看| 国产一区二区0| 午夜精品久久久久久| 亚洲欧美日韩另类精品一区二区三区| 欧美日韩国产首页在线观看| 在线成人免费视频| 亚洲第一偷拍| 久久久久久久网站| 国产中文一区| 亚洲大胆女人| 另类av导航| 亚洲福利一区| 亚洲精品久久久久久久久久久| 久久偷窥视频| 在线观看国产日韩| 亚洲人成网站精品片在线观看 | 农村妇女精品| 亚洲国产精品福利| 亚洲人成精品久久久久| 欧美黑人国产人伦爽爽爽| 亚洲第一色中文字幕| 91久久精品日日躁夜夜躁欧美| 免费成人av| 亚洲区国产区| 亚洲深夜福利视频| 国产精品欧美一区二区三区奶水| 亚洲欧美激情视频在线观看一区二区三区| 中日韩视频在线观看| 欧美视频四区| 午夜日韩在线| 久久永久免费| 亚洲剧情一区二区| 亚洲欧美制服中文字幕| 国产一区二区三区观看| 亚洲精品影视在线观看| 欧美日韩综合在线免费观看| 亚洲资源av| 美女久久一区| 一二三区精品| 午夜精品免费在线| 黄色免费成人| 艳女tv在线观看国产一区| 国产精品久久一区二区三区| 久久国产精品一区二区三区四区| 欧美波霸影院| 中日韩高清电影网| 久久五月婷婷丁香社区| 亚洲靠逼com| 欧美伊人精品成人久久综合97| 伊人色综合久久天天| 亚洲一区二区在线免费观看| 国产综合激情| 在线视频一区二区| 国产亚洲欧美日韩一区二区| 亚洲免费观看高清完整版在线观看熊| 国产精品久久久久久久久免费桃花| 欧美呦呦网站| 欧美国产视频在线观看| 亚洲在线成人精品| 另类亚洲自拍| 在线综合欧美| 久久精品日韩| 99在线视频精品| 久久av在线| 洋洋av久久久久久久一区| 性做久久久久久久久| 国内自拍亚洲| 亚洲欧美三级伦理| 精品动漫3d一区二区三区| 夜夜爽av福利精品导航 | 99精品欧美一区二区三区综合在线| 欧美日本一道本| 亚洲一线二线三线久久久| 欧美成人免费播放| 亚洲一区精品视频| 久久视频在线免费观看| 亚洲一区二区毛片| 另类成人小视频在线| 一本久道久久综合中文字幕| 欧美一区二区三区免费视频| 1024国产精品| 亚洲欧美日韩国产一区二区| 在线日韩av片| 午夜伦欧美伦电影理论片| 韩国三级电影一区二区| 亚洲影院高清在线|