[集会] 进口和出口的原料
ASM中只提供导入功能 1 并输入字符串,并希望进入 1 一些有 2 位数以上需要建立单独的过程.
输入数字算法:
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
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
.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 那些人物.