用8086組合語言編寫程式,接受從鍵盤上輸入的兩位十進位制數字,這個數經過BCD碼處理,以十六進位制顯示出

時間 2021-08-14 22:59:26

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...