《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 解決方案 > 匯編源代碼之簡單密碼輸入

匯編源代碼之簡單密碼輸入

2017-07-23
關(guān)鍵詞: 匯編語言

title***簡單密碼輸入 by lluct***
datasegment ;定義數(shù)據(jù)段
input  db   100 dup (?)
;定義輸入的字符串,字符串必須用db定義,長度為100個字節(jié)
cmpare db   '5201314','$'
;定義密碼
msg1  db   'PASSWORD RIGHT!','$'
;定義輸入密碼正確后顯示出來的信息
msg2  db   'PASSWORD ERROR!','$'
;定義輸入密碼錯誤后顯示出來的信息
headmsg db   'ENTER YOUR PASSWORD:','$'
;頭信息
dataends ;數(shù)據(jù)段結(jié)尾
  codesegment ;定義代碼段
assumecs:code ;規(guī)定cs的內(nèi)容
assumeds:data ;規(guī)定ds的內(nèi)容
  start:movax,data ;程序從start開始
movds,ax ;ds置初值,data的段地址
movsi,0 ;變址寄存器置初值0
  call  enter ;調(diào)用顯示回車換行子程序
    lea   dx,headmsg;輸出頭信息字符串的偏移地址
    call  dispchs ;調(diào)用顯示字符串子程序
repeat:movah,01h 
;定義repeat標(biāo)號,用于循環(huán)輸入單個字符.調(diào)用1號功能:從鍵盤輸入一個字符并回顯
int21h ;完成輸入回顯
    cmp   al,0dh ;輸入的字符和cr(回車)比較
jefinish ;如果等于回車就轉(zhuǎn)移到finish
movinput[si],al;把a(bǔ)l的置傳送到input的si地址中(好像是這樣吧)
incsi ;si加1
jmprepeat ;無條件轉(zhuǎn)移到repeat
finish:movinput[si],24h;給輸入完成的字符串加上結(jié)束標(biāo)志($)
callenter
  mov   si,0 ;源變址寄存器置初值0
    mov   di,0 ;目的變址寄存器置初值0
    mov   cx,8 ;設(shè)置密碼檢查位數(shù)(結(jié)束標(biāo)志也要算進(jìn)去)
check: cmp   cx,0 ;置位數(shù)為0.
    je   right ;如果密碼檢查完成,轉(zhuǎn)移到right
    mov   bl,input[si];把input的si地址中的數(shù)據(jù)傳送到bl
    mov   dl,cmpare[di];把cmpare的di地址中的數(shù)據(jù)傳送到dl
    cmp   dl,bl ;dl和bl比較
    jne   error ;如果不相等,就轉(zhuǎn)移到error
    inc   si ;si加1
    inc   di ;di加1
    dec   cx ;cx減1
    jmp   check ;無條件轉(zhuǎn)移到check
  right: call  enter
    lea   dx,msg1 
    call  dispchs
    call  enter
    jmp   exit
  error: call  enter
    lea   dx,msg2
    call  dispchs
    mov   dl,07h ;輸出ascii碼的報警(響鈴)控制符bel(07h)
    call  dispch
    call  enter
    jmp   exit
exit:movah,4ch ;4c號功能調(diào)用:終止當(dāng)前程序并返回
int21h ;返回dos
  enterprocnear ;顯示回車換行子程序
movdl,0dh ;輸出ascii碼的回車控制符cr(odh)
calldispch
movdl,0ah ;輸出ascii碼的換行控制符lf(0ah)
calldispch
ret ;返回
enterendp ;子程序結(jié)尾
  dispchprocnear ;顯示單個字符子程序
movah,02h ;2號功能調(diào)用:顯示器輸出字符
int21h ;完成輸出顯示
ret
dispchendp
  dispchsprocnear ;顯示字符串子程序
movah,09h ;9號功能調(diào)用:顯示字符串
int21h ;完成輸出顯示
ret
dispchsendp
  codeends ;代碼段結(jié)尾
endstart ;結(jié)束匯編
  ;把以上代碼復(fù)制到記事本等文本程序中,并保存.(如passwrod.asm)
;編譯:masm password.asm
;連接:link password.obj
;執(zhí)行:password.exe
  =================================================================
  帶星號的密碼輸入
title***簡單密碼輸入進(jìn)階 by lluct***
  datasegment ;定義數(shù)據(jù)段
headmsg db   ' ',0dh,0ah
db'+----------------------------------------------+',0dh,0ah
db'| Simple input password system for asm program |',0dh,0ah
db'|        have a fun.^-^.        |',0dh,0ah
db'| Poor Programmer:lluct   Date:march,21 2004 |',0dh,0ah
db'+----------------------------------------------+',0dh,0ah
    db   0dh,0ah,'PLEASE INPUT PASSWORD:','$'
;定義頭信息組
msg1db'PASSWORD RIGHT!','$'
;定義輸入密碼正確后顯示出來的信息
msg2db'PASSWORD ERROR!','$'
;定義輸入密碼錯誤后顯示出來的信息
cmparedb'5201314','$'
;定義密碼
inputdb100 dup (?)
;定義輸入的字符串,字符串必須用db定義,長度為100個字節(jié)
dataends ;數(shù)據(jù)段結(jié)尾
  codesegment ;定義代碼段
assumecs:code ;規(guī)定cs的內(nèi)容
assumeds:data ;規(guī)定ds的內(nèi)容
  start_program: ;程序從這里開始
movax,data ;把data段地址賦給ax
movds,ax ;ds置初值,data的段地址
movsi,0 ;變址寄存器初值為0
  callenter ;調(diào)用顯示回車換行子程序
    lea   dx,headmsg;輸出頭信息組的偏移地址
calldispchs ;調(diào)用顯示字符串子程序
  repeat_input: ;循環(huán)輸入單個字符
movah,08h ;調(diào)用8號功能:鍵盤輸入字符(無回顯)
int21h ;完成輸入
    mov   dl,2ah ;輸出ascii碼的*號
    push  ax ;保護(hù)原來輸入的字符
    calldispch ;調(diào)用單個字符回顯子程序
    pop   ax ;恢復(fù)原來輸入的字符
    cmpal,0dh ;是否回車
jefinished_input;是就轉(zhuǎn)移到finished_input
movinput[si],al;保存單個字符
incsi ;訪問下一個相對地址
jmprepeat_input;無條件轉(zhuǎn)移到repeat_input
  finished_input: ;完成輸出
movinput[si],24h;給剛才輸入的字符串加結(jié)束標(biāo)志($)
callenter
  movsi,0 ;si置0
movdi,0 ;di置0
movcx,8 ;設(shè)置檢測密碼的長度,要包括結(jié)束標(biāo)志
check_password: ;檢測密碼
cmpcx,0 ;cx為是否為0
jeright ;是就轉(zhuǎn)移到right
movbl,input[si];把input的si的地址內(nèi)的信息傳送到bl
movdl,cmpare[di];把cmpare的di的地址內(nèi)的信息傳送到dl
cmpdl,bl ;檢查dl和bl是否一樣
jneerror ;不是就轉(zhuǎn)移到error
incsi ;si加1
incdi ;di加1
deccx ;cx減1
jmpcheck_password
  right:
call enter
leadx,msg1
calldispchs
callenter
jmpexit
  error:
callenter
leadx,msg2
calldispchs
movdl,07h ;輸出ascii碼的報警(響鈴)控制符bel(07h)
    call  dispch
callenter
jmpexit
  exit:  mov   ah,4ch ;4c號功能調(diào)用:終止當(dāng)前程序并返回
int21h ;返回dos
  enterprocnear ;顯示回車換行子程序
movdl,0dh ;輸出ascii碼的回車控制符cr
calldispch
movdl,0ah ;輸出ascii碼的換行控制符lf
calldispch
ret ;返回
enterendp
  dispchprocnear ;顯示單個字符子程序
    mov   ah,02h ;2號功能調(diào)用:顯示器輸出字符
int21h ;完成輸出顯示
    ret
dispchendp
  dispchsprocnear ;顯示字符串子程序
movah,09h ;9號功能調(diào)用:顯示字符串
int21h
ret
dispchsendp
  codeends ;代碼段結(jié)尾
    end   start_program;結(jié)束匯編
;把以上代碼復(fù)制到記事本等文本程序中,并保存.(如passwd2.asm)
;編譯:masm passwd2.asm
;連接:link passwd2.obj
;執(zhí)行:passwd2.exe

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美在线欧美在线| 亚洲精品在线观| 蜜臀va亚洲va欧美va天堂| 亚洲成在人线av| 亚洲国产视频一区| 欧美久久视频| 亚洲男人的天堂在线| 亚洲欧美成人综合| 激情自拍一区| 欧美屁股在线| 欧美a级在线| 亚洲欧美日韩一区在线| 久久国产精品一区二区三区| 在线精品一区二区| 欧美日韩一区在线观看| 欧美淫片网站| 亚洲国产精品一区二区第一页| 亚洲第一精品久久忘忧草社区| 国产午夜精品久久久| 欧美成人三级在线| 亚洲欧美视频一区二区三区| 中文日韩电影网站| 久久精品视频网| 99热精品在线| 国内成人自拍视频| 欧美日韩免费在线观看| 欧美日韩国产一区| 久久中文字幕一区二区三区| 亚洲午夜精品视频| 欧美中文字幕视频| 久久精品盗摄| 亚洲精品久久久蜜桃 | 亚洲欧洲精品一区二区三区 | 亚洲精品少妇网址| 在线视频欧美日韩| 亚洲大黄网站| 亚洲国产午夜| 一本大道久久精品懂色aⅴ| 欧美一区免费视频| 一本大道久久a久久综合婷婷| 国内精品久久久| 亚洲大胆女人| 99视频在线观看一区三区| 亚洲五月婷婷| 亚洲精品综合| 亚洲国产经典视频| 国产一区二区三区日韩| 国产精品大片wwwwww| 欧美成人精品在线视频| 欧美精品在线播放| 国产精品视频xxx| 欧美日韩在线免费| 国产免费亚洲高清| 国产精品美女在线观看| 欧美欧美天天天天操| 国产精品久久久久久久久久免费 | 亚洲精品久久久蜜桃| 亚洲永久精品国产| 一本久道久久综合中文字幕| 亚洲欧美国产77777| 久久久久久网站| 欧美一级片一区| 裸体丰满少妇做受久久99精品| 欧美精品一区在线发布| 国产美女高潮久久白浆| 亚洲国产高清一区| 亚洲视频综合在线| 亚洲黄色免费| 性一交一乱一区二区洋洋av| 亚洲欧美春色| 美女福利精品视频| 国产精品久久91| 亚洲成人在线观看视频| 亚洲尤物在线视频观看| 亚洲一区二区三区四区五区午夜| 亚洲美女在线视频| 午夜一区不卡| 欧美在线看片| 中文av一区特黄| 免费欧美在线| 国产欧美日本| 国产亚洲一区二区三区在线播放| 亚洲日本精品国产第一区| 日韩视频在线观看| 亚洲福利视频专区| 91久久国产综合久久| 欧美一区二区三区视频免费| 欧美日韩国产一区| 亚洲国产精品成人精品 | 亚洲第一伊人| 亚洲承认在线| 一区二区精品| 老鸭窝毛片一区二区三区| 国产精品女人久久久久久| 91久久精品一区| 久久gogo国模裸体人体| 午夜精品一区二区三区四区 | 国产精品久在线观看| 亚洲人成在线免费观看| 亚洲福利一区| 久久久久亚洲综合| 国产欧美日韩另类一区| 一二三区精品福利视频| 亚洲另类视频| 欧美成人精品福利| 在线观看国产精品淫| 国内精品**久久毛片app| 亚洲性感美女99在线| 中国成人在线视频| 欧美伦理a级免费电影| 亚洲国产日韩一级| 亚洲精品国产品国语在线app | 精东粉嫩av免费一区二区三区| 亚洲欧美资源在线| 欧美一区二区精品| 国产精品丝袜xxxxxxx| 亚洲视频福利| 亚洲永久精品大片| 国产精品毛片高清在线完整版| 在线一区二区三区四区| 小黄鸭精品密入口导航| 亚洲福利免费| 久久亚洲私人国产精品va| 欧美日本在线一区| 亚洲国产日韩在线一区模特| 亚洲精品国久久99热| 欧美成人精品三级在线观看| 亚洲国产精品久久人人爱蜜臀| 亚洲国产欧美一区二区三区同亚洲| 久久免费精品视频| 激情视频一区二区三区| 亚洲国产精品va在看黑人| 浪潮色综合久久天堂| 伊人色综合久久天天| 亚洲国产欧美不卡在线观看| 欧美成人亚洲成人| 亚洲毛片一区| 亚洲欧美日韩综合国产aⅴ| 国产日韩欧美综合在线| 亚洲成人在线网站| 欧美激情亚洲国产| 国产日韩在线不卡| 久久riav二区三区| 久久亚洲春色中文字幕久久久| 一区二区在线观看av| 日韩亚洲精品在线| 久久在线精品| 亚洲国产精品电影| 亚洲视频一区二区| 国产精品青草久久| 欧美一区三区二区在线观看| 欧美成人激情在线| 在线一区亚洲| 久久久久久**毛片大全| 亚洲国产精品久久| 亚洲一区二区三区777| 国产偷国产偷亚洲高清97cao| 亚洲国产高清一区| 欧美日韩直播| 欧美一区二视频| 欧美精品一区二区在线播放| 亚洲一本视频| 美女黄色成人网| aa级大片欧美三级| 久久久精彩视频| 国产啪精品视频| 亚洲国产综合在线看不卡| 欧美日韩一区在线播放| 欧美一区二区三区在线| 欧美高清成人| 亚洲国产欧美一区二区三区同亚洲 | 欧美日韩一区二区三区在线| 欧美一级久久| 欧美精品在线观看| 欧美一级在线播放| 欧美日韩人人澡狠狠躁视频| 欧美在线免费一级片| 欧美日韩亚洲91| 亚洲福利精品| 国产麻豆视频精品| 正在播放亚洲| 伊人久久男人天堂| 午夜影视日本亚洲欧洲精品| 亚洲国产成人午夜在线一区 | 国内自拍一区| 亚洲在线电影| 91久久中文字幕| 久久精品在线观看| 一道本一区二区| 欧美激情中文字幕在线| 欧美一区二区三区视频在线 | 一区二区在线视频播放| 亚洲男女自偷自拍| 91久久久久| 久久伊人一区二区| 中日韩高清电影网| 欧美日本在线播放| 亚洲欧洲日本国产| 国产一区二区日韩精品欧美精品| 亚洲一区二区三|