1樓:做而論道
;********************==
disp_str macro x ;巨集定義.
mov dx, offset x
mov ah, 9
int 21h
endm
;----------------------
data segment ;資料段.
msg1 db 13, 10, 'please input : $'
msg3 db 13, 10, 'the hex is : $'
x dw ? ;存放新輸入資料.
data ends
;----------------------
code segment ;**段.
assume cs: code, ds: data
start:
mov ax, data
mov ds, ax
;--------------------------------
in_loop:
disp_str msg1 ;巨集呼叫,提示 please input :
;--------------------------------
mov x, 0 ;資料清零.
_inx:
mov ah, 1 ;輸入字元.
int 21h
;--------------------------------
cmp al, 13 ;回車?
je _in_end ;是則結束輸入.
cmp al, '0'
jb in_loop ;小於'0',不是數字.
cmp al, '9'
ja in_loop ;大於'9',不是數字.
sub al, '0'
mov cl, al
mov ch, 0
mov ax, x
mov bx, 10 ;老資料乘以10
mul bx
add ax, cx ;加上新資料.
mov x, ax ;儲存.
cmp ax, 99
ja in_loop
jmp _inx
;--------------------------------
_in_end:
disp_str msg3 ;巨集呼叫,提示 the hex is :
mov ax, x
mov bx, 16
mov cx, 0
d_1:mov dx, 0
div bx
add dl, '0'
cmp dl, 3ah
jb zzz
add dl, 7
zzz:
push dx
inc cx
cmp ax, 0
jne d_1
mov ah, 2
d_2:pop dx
int 21h
loop d_2
;--------------------------------
mov ah, 4ch
int 21h
;--------------------------------
code ends
end start
;********************=
2樓:匿名使用者
學彙編,要用到哪些軟體
8086將給定的二進位制數1234。轉換成二進位制編碼的十進位制bcd碼 140
組合語言程式設計問題編寫組合語言程式。能每隔10秒顯示數字分別為
org 0000h 數碼管共陰 ajmp main org 000bh t0ms equ not 50000 100 ms 晶振 6.000 mhz pjsbz equ 20h pjsbzy equ 21h pst0 mov tl0,low t0ms t0 中斷 mov th0,high t0ms ...
怎麼用組合語言編寫程式,統計字串的長度並輸出
允天曼 ho彙編?不是很懂.用字串.length 看是不是能獲得長度?int i 字串.indexof 獲得位置字串.substring i, 組合語言編語言也分好多種的,你說的是哪一種語言 data segment msg1 db length shex db 0123456789abcdef m...
用組合語言編寫程式段,實現從鍵盤輸入一位10進位制數後累加
code segment assume cs code org 100h start jmp bbb lfcr db 13,10,bbb push cs pop ds call inputnum mov ah,9 lea dx,lfcr int 21h lea si,array mov ch,0 m...