[集会] 进口和出口的原料
ASM中只提供导入功能 1 并输入字符串,并希望进入 1 一些有 2 位数以上需要建立单独的过程.
输入数字算法:
1 2 3 4 5 6 7 | Tổng = 0 Nhập một chữ số ASCII từ bàn phím Repeat Đổi ký tự vừa nhập thành giá trị số (GTS) Tổng = tổng*10 + GTS Nhập tiếp ký tự số Until nhập ký tự Enter |
实施例中描述的算法: 例如,我们进入 123. 该过程如下:
总= 0
输入“1”
更改“1”→号 1
总= 10*0 + 1
输入“2”
更改“2”号→ 2
总= 10*1 + 2 = 12
输入“3”
更改“3”号→ 3
总= 10*12 + 3 = 123
出口数字算法:
假设在AX号 24168
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 | chia 24168/10 được 2416 dư 8 chia 2416/10 được 241 dư 6 chia 241/10 được 24 dư 1 chia 24/10 được 2 dư 4 chia 2/10 được 0 dư 2 Viết ngược được 24168 Từ đây ta có thuật toán: đếm = 0 Repaet Chia số bị chia cho 10 Cất số dư vào ngăn xếp đếm = đếm +1 Until thương số = 0 For đếm do Lấy chữ số từ ngăn xếp Đổi ra ký tự Đưa ra màn hình End for |
下面的代码包括: 2 从整数的导入和导出功能 -32768 到 32767
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | .model small .stack 100 .data CLRF db 13 , 10 , '$' .code main proc mov ax, @data mov ds, ax call inputDec push ax ; luu Ax lai mov ah, 9 ; xuong dong lea dx, CLRF int 21h ; lay Ax ra pop ax call outputDec mov ah, 4ch int 21h main endp inputDec proc ; Vao: nhap vao so ; Ra: So luu trong Ax push bx push cx push dx batDau: mov ah, 2 xor bx, bx xor cx, cx mov ah, 1 int 21h cmp al, '-' je dauTru cmp al, '+' je dauCong jmp tiepTuc dauTru: mov cx, 1 dauCong: int 21h tiepTuc: cmp al, '0' jnge khongPhaiSo ; khong lop hon hoac bang cmp al, '9' jnle khongPhaiSo ; Khong nho hon hoac bang and ax, 000fh ; doi thanh chu so push ax ; cat vao ngan xep mov ax, 10 mul bx ; ax = tong* 10 mov bx, ax pop ax add bx, ax ; tong = tong* 10 + so mov ah, 1 int 21h cmp al, 13 ; da enter chua? jne tiepTuc ; nhap tiep mov ax, bx ; chuyen KQ ra ax or cx, cx ; co phai so am khong je ra neg ax ; neu la so am thi doi ax ra so am ra: pop dx pop cx pop bx ret khongPhaiSo: mov ah, 2 mov dl, 0dh int 21h mov dl, 0ah int 21 jmp batDau inputDec endp outputDec proc push bx push cx push dx cmp ax, 0 ; neu ax > 0 tuc la khong phai so am ta doi ra day jge doiRaDay push ax mov dl, '-' mov ah, 2 int 21h pop ax neg ax ; ax = -ax doiRaDay: xor cx, cx ; gan cx = 0 mov bx, 10 ; so chia la 10 chia: xor dx, dx ; gan dx = 0 div bx ; ax = ax / bx; dx = ax % bx push dx inc cx cmp ax, 0 ; kiem tra xem thuong bang khong chua? jne chia ; neu khong bang thi lai chia mov ah, 2 hien: pop dx or dl, 30h int 21h loop hien pop dx pop cx pop bx ;pop ax ret outputDec endp end main |
貌似地点仍然MOV AX,10 是MOV BX,10 那么是不是长官毫秒MUL BX
输入a和b是数字 3 然后添加功能的数字尚未先生?
有 3 数字,可以限制进口 3 那些人物.