24h購物| | PChome| 登入
2013-04-18 21:51:22| 人氣8,225| 回應1 | 上一篇 | 下一篇

[組合語言][練習] 產生20個隨機字串

推薦 0 收藏 0 轉貼0 訂閱站台



題目意思:這二十個字串要包含數字或英文字母


TITLE
;displays 20 random strings, each consisting of 10 capital
;letter {A...Z}
;call Crlf == '\n'
INCLUDE Irvine32.inc
.data
.code
start PROC
    mov ecx, 20
loopi:
    push     ecx
    mov        ecx, 10
loopj:
    mov        eax, 62        ; RandomRange[0, eax-1]
    call     RandomRange ; result in eax
    cmp        eax, 10     ; 0 <= eax < 10 is number
    jae     letter      ; eax >= 10 is letter
    add        eax, 48     ; eax += '0'
    jmp        print
letter:
    cmp        eax, 36     ; 10 <= eax < 10+26 is upper
    jae     lower       ; eax >= 36
    add        eax, 55     ; eax = eax-10+'A'
    jmp        print
lower:
    add        eax, 61     ; eax = eax-36+'a'
print:
    call    WriteChar
    loop    loopj
    pop        ecx
    call    Crlf
    loop     loopi
    invoke ExitProcess, 0
start ENDP
end start
; if(eax < 10)
;    printf("%c", eax+'0');
; else if(eax < 36)
;    printf("%c", eax-10+'A');
; else
;    printf("%c", eax-36+'a');

台長: Morris
人氣(8,225) | 回應(1)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: [學習]組合語言 |
此分類下一篇:[組合語言][練習] Color Matrix
此分類上一篇:[組合語言] File Ouput 練習

欚躤鍲
jae是啥阿
2013-12-03 20:56:01
版主回應
經由 cmp 計算後,jae 緊接判斷為是否 "大於等於" 則跳轉至目標處。
2013-12-05 16:45:34
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文