日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编基础知识之输入输出

發(fā)布時間:2024/5/28 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编基础知识之输入输出 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近在學(xué)習(xí)匯編程序,但輸入輸出是我遇到的第一個難題,這里就簡單講訴一些匯編的基本輸出輸出字符串、字符、輸出數(shù)字等知識,僅供大家學(xué)習(xí)。這只是一些基礎(chǔ)知識,匯編高手亦可以溫習(xí)一些基礎(chǔ)的輸入輸出知識.

?

一.輸出字符串

下面是調(diào)用9號功能輸出字符串"Hello World"的代碼。

DATAS SEGMENT;輸出的字符串 13回車 10換行 $結(jié)束標(biāo)志(\0) Input DB 13,10,'Hello Word!',13,10,'$' DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS START:MOV AX,DATASMOV DS,AX ;數(shù)據(jù)放入DSLEA DX,Input ;字符串偏移起始DX,同MOV DX,OFFSET ASC指令MOV AH,9 ;09功能 打印字符串INT 21H ;INT 21H是DOS中斷功能調(diào)用的中斷號,調(diào)用功能MOV AH,4CH ;返回DOS系統(tǒng)INT 21H CODES ENDSEND START

輸出結(jié)果為:

?

二.輸入輸出單個字符

下面是調(diào)用2號功能輸出單個字符"a"和調(diào)用1號功能輸入單個字符的代碼。

DATAS SEGMENT;此處輸入數(shù)據(jù)段代碼Input DB 13,10,'Please input:',13,10,'$' DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS START:MOV AX,DATASMOV DS,AX ;數(shù)據(jù)放入DSMOV DL,'a' ;字符存入寄存器MOV AH,02H ;調(diào)用2號功能輸出單個字符INT 21H ;INT 21H調(diào)用功能;調(diào)用9號功能輸出字符串"請輸入"LEA DX,Input MOV AH,9 INT 21HMOV AH,01H ;調(diào)用1號功能輸入字符(只能輸入一個字符)INT 21HMOV AH,4CH ;返回DOS系統(tǒng)INT 21H CODES ENDSEND START

?輸出結(jié)果為:

?

三.輸出4位數(shù)字

在做匯編實驗時,總是遇到一個問題,不會輸出一串?dāng)?shù)字如:2030.(8位最大5位數(shù))
下面就是輸出一串?dāng)?shù)字的代碼,這里采用的方法是(必須是4位數(shù)字)
1.先除以1000.2030/1000=2(商)..30(余)判斷商是否為0,不為0輸出;
2.輸出玩千位2后,商賦值給寄存器接著跳轉(zhuǎn)到判斷百位;
3.這里重點是設(shè)置了一個判斷變量Nozero,如果這里是3/1000=0(商)..3(余),為0就判斷該變量是否為0,為0表示它小于1000,不輸出0,否則會輸出0003.而當(dāng)數(shù)字第一位不為0時(如2030第一位是2,不為0)就令變量Nozero=1,后面要輸出的0都是在數(shù)字中顯示輸出.(如2000,當(dāng)輸出2時,Nozero=1,余數(shù)為0,后面的0均輸出.而30只會到十位Nozero才賦值為1,輸出個位的0).
4.依次判斷十位,個位.

DATAS SEGMENT ;變量A和B為0-9999的無符號整數(shù)A DW 2030 ;變量ANum DW ? Nozero DW ? ;添加一個判斷標(biāo)志變量 DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS START: ;-------------------------------------------------------------------------MOV AX,DATASMOV DS,AX;16位出發(fā)在DX:AX一對寄存器中MOV AX,AMOV Nozero,0 ;like a boolean variable ;------------------------------------------------------------------------- ;輸出千位 Output0:;輸出數(shù)字 A存入AX中XOR DX,DXMOV Num,1000DIV NumMOV BX,AX ;商AXMOV CX,DX ;余數(shù)DXCMP BX,0 JNE OutputNum0 ;商AX=!0 輸出數(shù)字;重點:添加該判斷防止0不能輸出 CMP Nozero,0 ;變量Nozero!=0輸出數(shù)字0JNE OutputNum0 ;相當(dāng)于0003前面3個0過濾 2000后面3個0顯示 ;------------------------------------------------------------------------- ;輸出百位 Output1: MOV AX,CX ;DX:AX 余數(shù)CX賦值至AXXOR DX,DXMOV Num,100DIV NumMOV BX,AX ;商AXMOV CX,DX ;余數(shù)DXCMP BX,0 JNE OutputNum1 CMP Nozero,0JNE OutputNum1 ;------------------------------------------------------------------------- ;輸出十位 Output2: MOV AX,CX ;DX:AX CX賦值至AXXOR DX,DXMOV Num,10DIV NumMOV BX,AX ;商AXMOV CX,DX ;余數(shù)DXCMP BX,0JNE OutputNum2 CMP Nozero,0JNE OutputNum2 ;------------------------------------------------------------------------- ;輸出個位 Output3:MOV AX,CX ;DX:AX CX賦值至AXXOR DX,DXMOV Num,10DIV Num ADD DX,30H ;余數(shù)DXMOV AH,2INT 21H;退出程序JMP Exit ;------------------------------------------------------------------------- OutputNum0:;程序輸出數(shù)字MOV Nozero,1 ;標(biāo)志變量賦值為1ADD BX,30H ;數(shù)字加30H為ASC碼數(shù)字 MOV DX,BX ;必須賦值到DX來調(diào)用中斷,否則會報錯MOV AH,2 ;調(diào)用2號功能輸出字符INT 21HJMP Output1 ;------------------------------------------------------------------------- OutputNum1:;程序輸出數(shù)字MOV Nozero,1 ;標(biāo)志變量賦值為1ADD BX,30H ;數(shù)字加30H為ASC碼數(shù)字 MOV DX,BX ;必須賦值到DX來調(diào)用中斷,否則會報錯MOV AH,2 ;調(diào)用2號功能輸出字符INT 21HJMP Output2 ;------------------------------------------------------------------------- OutputNum2:;程序輸出數(shù)字MOV Nozero,1 ;標(biāo)志變量賦值為1ADD BX,30H ;數(shù)字加30H為ASC碼數(shù)字 MOV DX,BX ;必須賦值到DX來調(diào)用中斷,否則會報錯MOV AH,2 ;調(diào)用2號功能輸出字符INT 21HJMP Output3 ;------------------------------------------------------------------------- Exit:;程序結(jié)束模板:使用AH來選擇功能,其中4CH功能讓你退出程序MOV AH,4CHINT 21H ;------------------------------------------------------------------------- CODES ENDSEND START

輸出的結(jié)果是:而當(dāng)A賦值為3會輸出相應(yīng)的3而不是0003.

此方法似乎很笨拙,輸出數(shù)字每次都是書寫了4遍重復(fù)的輸出代碼,而且來回的跳轉(zhuǎn),但是更重要的是提供一個Nozero的思想,在C、C++、C#、Java中常用到的設(shè)置bool型變量的方法在匯編程序中同樣有用并好用.在實驗中我也采用的是下面的定義子程序方法輸出數(shù)字.

?

四.采用函數(shù)輸出4位數(shù)字

下面是百度知道里面的一種方法,調(diào)用函數(shù)輸出數(shù)字的方法,由于還沒有學(xué)到子函數(shù),所以這里沒有驗證該方法,但感覺此方法還是相當(dāng)有用的一種方法.上面設(shè)置的Nozero也是參照了它的思想.僅供大家學(xué)習(xí).

網(wǎng)址:http://zhidao.baidu.com/question/54461195.html

outd procpush cxmov nozero,0 ;like a boolean variable mov cx, 10000call decdivmov cx, 1000call decdivmov cx, 100call decdivmov cx, 10call decdivmov cx, 1call decdiv;cmp nozero, 0;jne outdexit;mov dl, 30h;mov ah, 2;int 21h outdexit:pop cxret ;call: 被除數(shù)在bx傳入,除數(shù)在cx傳入 ;ret: 打印商,余數(shù)送bx decdiv procmov ax, bxmov dx, 0div cxmov bx, dxmov dl, alcmp dl, 0jne dispdigitcmp nozero, 0jne dispdigitjmp decdivexit dispdigit:mov nozero, 1add dl, 30hmov ah, 2int 21h decdivexit:ret decdiv endp outd endp

?

五.總結(jié)

最后,上面的文章主要是給剛學(xué)習(xí)匯編的同學(xué)參考,大神略過.同時,代碼也不是很優(yōu)化,比較冗余,但它還是提供了一些很好的匯編思想供大家學(xué)習(xí),希望大家能學(xué)到一些思想.反正對我剛學(xué)習(xí)匯編的此時,上面4個代碼還是非常有用的.
由于剛學(xué)習(xí)發(fā)表博客,可能內(nèi)容和格式不是很好,還請海涵! By: Eastmount

總結(jié)

以上是生活随笔為你收集整理的汇编基础知识之输入输出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品视频成人 | 亚洲香蕉网站 | 韩国美女一区 | 少妇被按摩师摸高潮了 | 日本视频在线看 | 国产五月天婷婷 | 中文不卡av| 久久久久久久久久久国产 | 国产调教在线观看 | 男女午夜视频在线观看 | 国产一区二区影院 | 亚洲精品福利视频 | 国产精品久久久久久久久久久新郎 | 亚洲图片在线视频 | 久久久激情视频 | 国产毛片久久久久久 | 国产一级片麻豆 | 亚洲国产一区二区在线观看 | 欧美日韩亚洲视频 | 91啪国产在线 | 久久影视一区二区 | 午夜电影网一区 | 校园sm主奴调教1v1罚视频 | 国产一伦一伦一伦 | 亚洲天堂精品在线观看 | 日韩av在线播放不卡 | 欧美日韩卡一卡二 | 麻豆蜜桃wwww精品无码 | 精品少妇人妻av一区二区 | 日韩中文在线一区 | 国产视频日韩 | av第一福利大全导航 | 欧美另类极品videosbest最新版本 | 色不卡 | 九久久久久 | 精品一区二区三区在线视频 | 欧美性生交xxxxx久久久 | 蜜桃视频免费网站 | 夜间福利视频 | xxxx日本高清 | 美女视频一区 | 狠狠躁18三区二区一区视频 | 国产高清视频在线 | 久久94| 国产精品第二页 | 影音先锋激情 | 最新福利视频 | 97人人人 | 狠狠澡 | 又大又长粗又爽又黄少妇视频 | 亚洲精品久久久久久久久久吃药 | 亚洲天堂免费在线观看视频 | 看黄色网址 | 国产午夜三级 | 欧美精品影院 | 欧洲美一区二区三区亚洲 | 成人免费在线视频网站 | 国产精品国产三级国产aⅴ中文 | av在线毛片| 国产一级黄色av | 香蕉综合视频 | 日韩www| 99精品视频一区二区 | 噜噜色图| 玉足脚交榨精h文 | 456亚洲影院 | 欧美日韩高清不卡 | 人人草在线 | 久久久久久久999 | av夜色| 欧美动态色图 | 欧美亚洲91 | 亚洲综合在线一区 | 免费观看已满十八岁 | 挪威xxxx性hd极品 | 999久久久久 | av资源在线免费观看 | 午夜av在线免费观看 | 亚洲精品福利网站 | 精品免费久久久 | 国内福利视频 | 日韩六区| 在线色网址 | 黄色一级片网站 | 免费日韩av | v天堂在线| 蜜桃av在线| 国模少妇一区二区 | 黑人一级大毛片 | 成人精品一区二区三区电影黑人 | 亚洲激情电影在线 | 成年人爱爱视频 | www.xxx在线观看 | 日本一区二区在线免费 | 国产伦精品一区二区三区照片 | 极品国产在线 | 国产一级片a | 九色91porny | 欧美第三页 |