導航:首頁 > 編程語言 > 100條以上的匯編語言程序

100條以上的匯編語言程序

發布時間:2023-10-19 08:29:28

❶ 100行的匯編語言程序

dat segment
data db 10 p(0)
input db 'input:$'
output db 'output:$'
enter db 0dh,0ah,'$'
dat ends

cod segment
assume ds:dat,cs:cod
;-----------------------主程序
start:
mov ax,dat
mov ds,ax ;數據段寄存器賦值

lea si,data ;SI指向DATA數組首單元
mov cl,4
ppp:
mov bx,0 ;BX清零

lea dx,input ;這三行調用INT 21H中斷常式的9號功能輸出DS:DX指向的字元串,以'$'結尾
mov ah,9 ;以下代碼若有類似的三句,實現功能類似
int 21h ;顯示輸入提示

;-----------------------開始輸入十六進制數
get:
mov ah,1 ;這兩行調用INT 21H中斷常式1號功能,等待用戶輸入一個字元,保存入AL中
int 21h

;以下6對代碼依次比較輸入字元,並跳轉到相應操作
cmp al,'*'
jz kkk ;輸入'*'號,退出程序

cmp al,0dh ;0DH是回車鍵對應的字元
jz mess ;輸入回車,跳出get循環(get循環:實現輸入十六進制數並保存到BX的功能)

cmp al,30h ;這4行判斷是否是'0'~'9'
jb get

cmp al,39h
jbe num

cmp al,'A' ;這4行判斷是否是'A'~'F'
jb get

cmp al,'F'
jbe big

cmp al,'a' ;這4行判斷是否是'a'~'f'
jb get

cmp al,'f'
jbe big

jmp get

num: ;對數字進行處理
and al,0fh ;al高4位清零,保留低4位
jmp next

big: ;對大寫字母或者小寫字母進行處理
sub al,7
and al,0fh

next:
shl bx,cl ;BX左移4位
add bl,al ;將數字保存到BL的低4位中
jmp get
;-----------------------
mess:
lea dx,enter
mov ah,9
int 21h ;回車、換行

lea dx,output
mov ah,9
int 21h ;顯示輸出提示

mov dx,0
mov ax,bx
mov bx,10 ;進制數
again:
call buf
cmp ax,0 ;商如果為0,表示該十六進制數對應的十進制數的每一個數位的值都存入了DATA數組
jnz again

mov ah,2 ;INT 21H的2號功能:將DL中保存的ASCII碼對應的字元輸出
ttt:
dec si
mov dl,[si] ;取數據
int 21h ;顯示

cmp si,0
jnz ttt ;判斷是否取完DATA數組的所有元素,來控制循環

lea dx,enter
mov ah,9
int 21h ;回車、換行

jmp ppp ;開始下一輪輸入、轉換和輸出
kkk:
mov ah,4ch ;退出程序的操作
int 21h
;--------------------子程序
;傳入參數:BX,進制數10;DX、AX,表示一個32位16進制數
;返回值:AX
;功能:
;1. 將DX、AX表示的16進制數除以10,得到余數(余數在0~9之間,即對應十進制無符號數的個位數字)
;2. 將其轉換為對應字元的ASCII碼(即1轉換為'1'),並保存到SI指向的DATA數組元素的位置
;3. SI指向DATA數組的下一個元素
buf proc
div bx
add dl,30h
mov [si],dl
mov dl,0
inc si
ret
buf endp

cod ends
end start

;總結:這段程序實現的功能
;1. 十六進制輸入一個數,輸入回車表示輸入結束,輸入'*'表示退出程序,保存到寄存器中
;2. 十六進制數轉換為十進制無符號數,使用了類似於棧的操作的方法
;3. 十進制無符號數轉換為對應字元的ASCII碼(2和3由子程序buf完成)
;4. ASCII碼對應字元的輸出的功能

❷ 100條匯編語言編一個程序

請到我的博客隨便找一個吧!

閱讀全文

與100條以上的匯編語言程序相關的資料

熱點內容
c盤中的哪些是系統文件夾 瀏覽:668
分布式服務如何跨庫統計數據 瀏覽:829
力控轉發數據客戶端模式如何建立 瀏覽:200
怎麼樣讓自己的網站不被別人看到 瀏覽:711
編程擴展效果如何 瀏覽:335
榮耀暢玩手環同步qq 瀏覽:475
怎麼向sql中添加資料庫 瀏覽:596
錄歌失敗重啟app什麼意思 瀏覽:522
壓縮文件包怎麼在微信發送 瀏覽:432
mysql資料庫怎麼插入時間值 瀏覽:191
微信視頻不能轉發朋友圈 瀏覽:596
影視後期的app有哪些 瀏覽:956
電子保單數據出錯什麼意思 瀏覽:368
如何以文件下載音樂 瀏覽:438
計算機網路章節練習 瀏覽:999
單片機的外部中斷程序 瀏覽:48
表格批量更名找不到指定文件 瀏覽:869
js的elseif 瀏覽:584
3dmaxvray視頻教程 瀏覽:905
imgtool工具中文版 瀏覽:539

友情鏈接