[アセンブリ] 生のインポートとエクスポート
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斧を続けているように見えます,10 MOV BXは、,10 それは先生ミリMUL BXではありません
入力とbが数値であります 3 その後、まだ先生としての機能の数字を追加?
持っている 3 数字は、あなたが輸入を制限します 3 ある文字.