[集会] 进口和出口的原料
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 那些人物.