亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 1.asm

?? 一個簡單的匯編程序,電話號碼本的編輯和查找
?? ASM
字號:
DATAS SEGMENT 
   namcount dw 0                 ;存入名字的個數 
   tel_tab db 50 dup(28 dup(' '))         ;表格 

   nameitem label byte 
   nmax db 21 
   ncurlen db ? 
   namefld db 21 dup(?)         ;姓名緩存區 

   phoneitem label byte 
   pmax db 9 
   pcurlen db ? 
   phonefld db 9 dup(?)         ;電話號碼緩存區 
   
   addend dw ?                 ;排序時的tel_tab尾地址指針 
   namtemp db 28 dup(?),13,10,'$'         ;臨時保存表中一項 
   swap db 0                           ;排序中是否有交換的標志位 

   msg_count db 'Please enter the order you want to input?',13,10,'$' 
   msg_illcount db 'Error:The order of your enter exceed the limit of 50! Plesae input the number again!',13,10,'$' 
   msg_illch db 'Error:The order of your enter is illegal! Please intput the number again!',13,10,'$' 
   msg_inputnam db 'Input name:','$' 
   msg_inputerr db 'Error:Input error!,please input a name!',13,10,'$' 
   msg_inputnum db 'Input a telephone number:','$' 
   msg_inquire db 'Do you want to find a telephone number?(Y/N)','$' 
   msg_sname db 'name?',13,10,'$' 
   msg_outtitle db 'name                tel.',13,10,'$' 
   msg_nomatch db 'No such name!Do you want to insert this item(Y/N)?',13,10,'$' 
   msg_result db 'The Phone Dictionary is listed  as follows:',13,10,'$' 
   
DATAS ENDS
;-----------------------------------------------------------------------------------------------------------
STACKS SEGMENT para stack 'stack'
    dw 256 dup(0) 
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,ES:DATAS,SS:STACKS
main proc far    ;主程序段
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV ES,AX      ;初始化附加段     
    cld                         ;df=0 
    lea di,tel_tab              ;名字表的首地址放入di
    
    lea dx,msg_count 
    mov ah,9 
    int 21h                     
again:call decibin                ;調用decibin
    cmp dx,2                   
    call crlf 
    je exit1                   ;一個有效字符都沒輸入,跳轉要求重新輸入.輸入的為非法字符即非數字則不等輸入完就跳出 
    push bx 
    cmp bx,50 ; 
    ja  return                  ;輸入的個數大于50出錯跳出 
    
repeat0:
       pop bx 
       cmp namcount,bx     ;目前項數和要求輸入的項數比較,名字數和bx比較 
       je  choice                 ;如果所有項都輸入完畢則跳到choice排序 
       push bx     ;stor_name會用到bx,先保存 

       lea dx,msg_inputnam 
       mov ah,9 
       int 21h ;要求輸入名字 
       call input_name            ;調用input_name 
       cmp ncurlen,0               ;沒有輸入了則開始排序,輸入名字的字符數為0跳轉 
       je  choice 
       call stor_name 
       call input_phone           ;調用input_phone 
       jmp  repeat0 ;由于tel_tab是順序連續存儲,每一次輸入一項后,di即指向下一項的開始,所以無需調整 

choice:cmp namcount,1 
       jb  return1                ;表中項數小于1則要求輸入 
       call name_sort             ;不小于調用name_sort 
rotate:lea dx,msg_inquire ;輸出'Do you want to find a telephone number?(Y/N)'(查找)
       mov ah,9 
       int 21h                    ;顯示是否查找電話號碼 
       mov ah,1 
       int 21h                    ;由鍵盤輸入‘Y’或‘N’ 

       cmp al,'y' 
       je loop0 
       cmp al,'Y' 
       jne exit                  ;不為‘Y'或'y'跳出轉至exit 
       jmp loop0;為‘Y'回車、換行 
loop0: call crlf 
  lea dx,msg_sname ;'name?' 
       mov ah,9 
       int 21h                    ;顯示要查詢電話的姓名 

       call input_name            ;輸入姓名 
       call name_search           ;調用name_search 
       jmp rotate                 ;返回查找另一個電話 

insert: call crlf 
  call stor_name 
        call input_phone 
        ;call printline 
        ;cmp namcount,1 
        ;jb  return1                ;表中項數小于1則要求輸入 
        call name_sort             ;不小于調用name_sort       
        call printline 
       jmp rotate 


 exit1: lea dx,msg_illch ;輸入順序數不合法,重新輸入 
       mov ah,9 
       int 21h 

       jmp again 

return:lea dx,msg_illcount ;輸入順序數超出號碼本容量,重新輸入
       mov ah,9 
       int 21h 

       jmp again 

return1:lea dx,msg_inputerr ;輸入錯誤,重新輸入姓名 
        mov ah,9 
        int 21h               ;沒有輸入名字 

        jmp repeat0            ;出錯跳轉 

exit:  call printline ;輸出排序結果 
       mov ah,7 
       int 21h
       jmp main   
 main endp                   ;主程序結束
;---------------------------------------------------------------------------------------------------------------------
name_search proc near    ;(子程序)在表中順序查找輸入的名字 

        lea di,tel_tab           ;把輸入的名字首地址放入di 
        push di                  ;保存名字表首址,di為指向tel_tab表項的指針 
        mov bx,namcount           ;名字的個數放bx 
loop1:  lea si,namefld           ;名字的緩存區首地址放入si 
        mov cx,20 
        repe cmpsb               ;連續查找匹配名字 
        je  found                ;找到跳轉found 
        pop di                   ;沒找到di出棧 
        add di,28               ;把查找轉到下一個名字 
        push di 
        dec bx 
        jnz loop1                ;循環查找 

        lea dx,msg_nomatch 
        mov ah,9 
        int 21h                   ;一直沒找到則顯示沒有找到名字 

        mov ah,1 
       int 21h                    ;由鍵盤輸入‘Y’或‘N’ 
        cmp al,'y' 

        je insert 
        ;cmp al,'Y' ;此時di應指向插入位置 

        jne loop0                   ;不為‘Y'或'y'跳轉至重新輸入名字查找 
  ;jmp insert 

found:  pop di 
  lea dx,msg_outtitle 
        mov ah,9 
        int 21h 

        mov si,di ;把要找到的內容暫存在namtemp中 
        lea di,namtemp 
        mov cx,28 
        rep movsb 

        lea dx,namtemp 
        mov ah,9 
        int 21h                  ;顯示查到的姓名和電話號碼 
        ret 
name_search endp 
;-------------------------------------------------------------------------------------------------------
decibin proc near     ;十進制轉化為2進制 ,并保存到bx中
  mov bx,0         ;bx清零 
        mov dx,2         ;輸入數的位數置2 
newchar: 
        mov ah,1 
        int 21h          ;一號功能調用(輸入字符并回顯) 

        sub al,30h 
        jb  exit2        ;非數字退出 
        cmp al,9 
        ja  exit2        ;大于9退出(十進位制數每位0-9) 
        cbw              ;字節轉換成字(al->ax) 
        xchg ax,bx       ;交換ax、bx 
        mov cx,10 
        push dx 
        mul cx           ;先保存,dx×10 
        xchg ax,bx       ;再將ax、bx交換回 
        add  bx,ax 
        pop  dx 
        dec  dx 
        jnz  newchar     ;位數不為0跳轉 

exit2: ret 
decibin endp             ;結束 
;---------------------------------------------------------------------------------------------------------
input_name proc near     ;子程序(輸入名字) 
        lea dx,nameitem 
        mov ah,0ah 
        int 21h          ;輸入名字并送入緩存區 

        call crlf       ;回車、換行 

        mov bh,0 
        mov bl,ncurlen   ;把名字的字符個數放入bx低位 
        mov cx,21 ;置循環次數 
        sub cx,bx 

repeat1:mov namefld[bx],20h 
        inc bx 
        loop repeat1      ;輸入的名字為20字節,不足的用空格補足 
        ret 
input_name endp 

stor_name proc near      ;子程序(傳送名字的每個字母到si)  
  inc namcount 
        cld               ;df=0(從小到大) 
        lea si,namefld 
        mov cx,20 
        rep movsb         ;重復傳送串名字(以字節為單位),直至送滿20即cx=0 ,di指向tel_tab 
        ret 
stor_name endp 
;---------------------------------------------------------------------------------------------------------------
input_phone proc near     ;子程序(輸入電話號碼) 
        lea dx,msg_inputnum 
        mov ah,9 
        int 21h            ;顯示要求輸入電話號碼 

        lea dx,phoneitem 
        mov ah,10 
        int 21h            ;輸入電話號碼并送入緩存區 
         
        mov bh,0 
        mov bl,pcurlen 
        mov cx,9 ;置循環次數 
        sub cx,bx 

repeat2:mov phonefld[bx],20h 
        inc bx 
        loop repeat2      ;輸入的電話為8字節,不足的用空格補足 

        call crlf 

        cld                ;df=0 
        lea si,phonefld 
        mov cx,8 
        rep movsb          ;把輸入的號碼存入namtab表中,重復傳送串電話號碼(以字節為單位) 
        ret 
input_phone endp 
;-------------------------------------------------------------------------------------------------------------------
name_sort proc near          ;子程序(進行排序)
  push di 
  push ax 
  push bx 
        cmp namcount,1 
        jz  exit4            ;比較名字個數(只有一個名字即退出) 

s1:     mov swap,0 
  sub di,56;di指針后移兩個表項,第一次指向倒數第二項,以后每跑一趟前移一項 
  mov addend,di ;重新計算表尾指針 
  lea si,tel_tab 

s2:     mov cx,20 ;置循環計數值 
        mov di,si 
        add di,28 ;di->后項,si->前項 
        mov ax,di ;后項保存在ax 
        mov bx,si ;前項保存在bx 
        repe cmpsb ;源-目標,即前項如果大于后項,交換; 
        jbe s3 
        call exchange 

s3:     mov si,ax 
        cmp si,addend 
        jbe s2 ;是否已到namtab表尾,如果沒到繼續循環 
        cmp swap,0 ;如果有交換,繼續下一趟 
        jnz s1 

exit4:  pop bx 
  pop ax 
  pop di 
  ret 

name_sort endp 
;---------------------------------------------------------------------------------------------------
exchange proc near     ;交換tel_tab中di,si所指表項的內容,前項保存在bx 
        mov cx,28 
        lea di,namtemp 
        mov si,bx 
        rep movsb 
         
        mov cx,28 
        mov di,bx 
        rep movsb 
         
        mov cx,28 
        lea si,namtemp 
        rep movsb 
         
        mov swap,1 
        ret 
exchange endp 
;------------------------------------------------------------------------------------------------
printline proc near     ;輸出排序結果,不需要設置di,會改變di值 
  push di 
  push namcount   ;保存namcount的值 
   
        call crlf              

        lea dx,msg_result ;'The result of sort is as follows:' 
        mov ah,9 
        int 21h                ;顯示升序輸出姓名、電話 

        lea si,tel_tab 
loop2:  lea di,namtemp 
        mov cx,28 ;si每一次loop2會自動修正 
        rep movsb              ;循環傳送姓名、電話至輸滿27字節即cx=0 
        lea dx,namtemp 
        mov ah,9 
        int 21h                ;顯示姓名、電話 
        dec namcount            ;名字數減1 
        jnz loop2              ;沒輸完則循環輸出 

        pop namcount 
        pop di 
        ret 
printline endp 
;----------------------------------------------------------------------------------------------------
deciasc proc near     ;把10進制數轉換成相應的ASCII碼,digit in bl 
mov ch,10d 
mov cl,10d 

re:       ;判斷退出條件 
 cmp ch,0 
 je quit  
 mov al,bl; 
 cbw 
 div ch; 
 mov bl,ah

 call printit 
 ;a1a2a3... 遞推:x=an-1*10+an 
 ;mov dl,al;商暫存在bl中 
 ;mov dh,ah;余數暫存在dh中 
 ;mov bh,0d; 
 ;mov ax,bx 
 ;mul cl 
 ;mov bl,al 
 ;add bl,dl 

 ;除數ch=ch/10 
 mov al,ch 
 cbw 
 div cl 
 mov ch,al 
 ;dec dh 
 jmp re 

quit: 
 ret 
deciasc endp 
;------------------------------------------------------------------------------------------------
printit  proc near    ;輸出1位數字對應的ASCII碼,binary number in al 
 add al,30h 
 mov dl,al 
 mov ah,2 
 int 21h 
 ret 
printit  endp 
;---------------------------------------------------------------------------------------------------
crlf proc near 
        mov dl,0dh   
        mov ah,2 
        int 21h 
        mov dl,0ah 
        mov ah,2 
        int 21h 
        ret 
crlf endp

CODES ENDS
    END START







?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.99精品| 国产一区二区在线观看免费| 久久久久久久久久久电影| 欧美一区午夜视频在线观看| 欧美色视频在线观看| 欧美精品在欧美一区二区少妇| 欧美性色综合网| 精品1区2区3区| 日韩亚洲欧美成人一区| 欧美变态tickle挠乳网站| 日韩欧美国产1| 国产欧美日韩精品a在线观看| 欧美精彩视频一区二区三区| 亚洲欧美综合网| 香蕉久久夜色精品国产使用方法| 同产精品九九九| 精品午夜一区二区三区在线观看 | 中文字幕在线观看一区| 亚洲视频 欧洲视频| 亚洲精品国产一区二区精华液| 亚洲va欧美va人人爽午夜| 韩国成人在线视频| 99国产精品国产精品久久| 欧美日韩精品三区| 精品人伦一区二区色婷婷| 国产精品久久99| 五月天丁香久久| 成人激情文学综合网| 欧美色涩在线第一页| 久久品道一品道久久精品| 最新热久久免费视频| 蜜桃视频在线观看一区二区| 成人网在线播放| 欧美一区二区高清| 国产精品国模大尺度视频| 视频一区二区三区入口| 色综合久久88色综合天天免费| 91精品国产欧美一区二区18| 国产精品毛片a∨一区二区三区| 亚洲福中文字幕伊人影院| 国产一区二区女| 在线播放91灌醉迷j高跟美女| 26uuu色噜噜精品一区二区| 国产精品美女久久久久久2018| 亚洲国产一区二区三区| 国产99久久久国产精品潘金| 欧美剧在线免费观看网站| 国产欧美日韩在线观看| 日韩综合小视频| 日本精品一区二区三区四区的功能| 日韩精品一区二区三区swag| 一区二区高清免费观看影视大全 | 国产调教视频一区| 日日夜夜精品视频免费| 色婷婷久久久综合中文字幕| 精品国产免费一区二区三区四区| 亚洲国产精品人人做人人爽| 91影院在线观看| 欧美国产日本韩| 久久99精品国产麻豆婷婷| 欧美日韩亚洲国产综合| 自拍av一区二区三区| 国产精一区二区三区| 日韩一级黄色大片| 亚洲国产精品久久久男人的天堂| 6080日韩午夜伦伦午夜伦| 亚洲女同女同女同女同女同69| 国产电影精品久久禁18| 精品免费一区二区三区| 日韩成人精品视频| 777久久久精品| 亚欧色一区w666天堂| 欧美日韩色一区| 视频一区二区欧美| 欧美一级免费大片| 精品一区二区三区免费毛片爱 | 成人丝袜18视频在线观看| 国产欧美日韩精品一区| www.视频一区| 亚洲欧美视频在线观看视频| 色婷婷综合激情| 亚洲国产日韩一级| 91麻豆精品国产91久久久使用方法| 悠悠色在线精品| 91麻豆精品国产91| 狠狠色丁香久久婷婷综合丁香| 国产亚洲欧洲一区高清在线观看| 国产乱码精品一区二区三区五月婷| 久久精品在线免费观看| 91在线观看一区二区| 久久国产精品色婷婷| 久久九九国产精品| 91色在线porny| 亚洲成人在线网站| 精品国产凹凸成av人导航| 国产成人福利片| 一个色在线综合| 91精品国产麻豆国产自产在线 | 一区二区三区电影在线播| 欧美色精品在线视频| 麻豆精品新av中文字幕| 一色屋精品亚洲香蕉网站| 欧美日本乱大交xxxxx| 狠狠色丁香久久婷婷综| 一区二区在线观看免费视频播放 | 中文字幕免费不卡在线| 一本到一区二区三区| 奇米影视一区二区三区小说| 国产视频一区二区在线| 欧美日韩一区小说| 成人动漫一区二区三区| 日韩精品欧美成人高清一区二区| 欧美高清在线精品一区| 欧美精品久久99久久在免费线| 国产精品一级片| 天堂资源在线中文精品| 中文字幕日韩欧美一区二区三区| 欧美一级久久久| 91国偷自产一区二区三区观看| 国产精品主播直播| 日本不卡不码高清免费观看| 中文字幕在线不卡视频| 2020国产精品久久精品美国| 欧美美女一区二区| 99re这里都是精品| 国产精一区二区三区| 免费成人你懂的| 五月天丁香久久| 亚洲午夜一区二区| 国产精品久久久久国产精品日日| 欧美成人女星排行榜| 欧美日韩午夜在线| 欧美综合久久久| 91麻豆文化传媒在线观看| 岛国精品在线观看| 黄色成人免费在线| 精品一区二区日韩| 日韩 欧美一区二区三区| 亚洲成av人综合在线观看| 亚洲人成网站在线| 亚洲色图一区二区三区| 亚洲欧洲日韩av| 国产精品成人一区二区艾草| 久久精品人人做人人爽人人| 久久综合久久综合九色| 精品久久久久久久久久久院品网 | 成人激情综合网站| 粉嫩绯色av一区二区在线观看| 久久成人羞羞网站| 久久99精品国产麻豆不卡| 精品午夜久久福利影院| 韩日av一区二区| 国产一区二区三区观看| 国产一区999| 不卡的av网站| 色综合久久综合网97色综合| 日本电影欧美片| 欧美视频在线观看一区| 777奇米四色成人影色区| 日韩精品一区二区在线| 欧美精品一区视频| 欧美激情自拍偷拍| 中文字幕亚洲区| 午夜亚洲国产au精品一区二区| 丝袜脚交一区二区| 韩国精品久久久| 91在线观看污| 精品国内片67194| 国产欧美视频在线观看| 日韩理论片网站| 日本成人在线视频网站| 国产激情一区二区三区| 99热99精品| 51精品秘密在线观看| 久久久久久久一区| 中文字幕中文在线不卡住| 亚洲成a人片综合在线| 国产一区二区在线视频| 91丨porny丨国产入口| 欧美日韩成人高清| 欧美国产97人人爽人人喊| 亚洲成人综合网站| 懂色av一区二区夜夜嗨| 91久久人澡人人添人人爽欧美 | 91社区在线播放| 日韩欧美专区在线| 综合久久综合久久| 麻豆精品久久久| 91在线你懂得| 精品国产91亚洲一区二区三区婷婷| 国产精品午夜在线| 蜜臀av一级做a爰片久久| 99精品一区二区三区| 精品99久久久久久| 亚洲一区免费观看| 粉嫩高潮美女一区二区三区| 日韩一区二区影院| 亚洲五码中文字幕| av一区二区不卡| 国产喂奶挤奶一区二区三区|