組合語言程式輸入一位十進位制轉換為二進位制

時間 2021-05-23 03:54:07

1樓:做而論道

判斷某個位,用 test 指令更方便。

data segment

llll db '0000$'

data ends

code segment

assume cs:code, ds:datastart:

mov ax, data

mov ds, ax

mov ah, 08h

int 21h ;如果輸入0~9sub al, 30h ;al=00000000~00001001

mov bl, al ;暫存;高四位是0000,用不著判斷,直接顯示

lea dx, llll

mov ah, 9

int 21h

;---------------------下面逐位判斷8421mov ah, 2

mov dl, '0'

test bl, 08h

je zero8

inc dl

zero8:

int 21h

mov dl, '0'

test bl, 04h

je zero4

inc dl

zero4:

int 21h

mov dl, '0'

test bl, 02h

je zero2

inc dl

zero2:

int 21h

mov dl, '0'

test bl, 01h

je zero1

inc dl

zero1:

int 21h

;---------------------------stop:

mov ah, 4ch

int 21h

code ends

end start

===========

也可以參考我以前的回答:

2樓:

你這太複雜了!

用移位指令逐位判斷並顯示會簡單很多。……自己試試看。

看看這個**,我在debug下直接寫的,簡單不?

組合語言程式設計問題編寫組合語言程式。能每隔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 ...

組合語言問題,組合語言問題

蜜蜂小玉米 assume cs code assume ds data data segment db i love you.data ends code segment start mov ax,data mov ds,ax mov bx,0 s0 check mov al,ds bx cmp a...

組合語言程式設計,組合語言程式設計

org 0000h ljmp main org 000bh ljmp t0int org 0030h main mov tmod,01h mov th0,high 65536 5000 mov tl0,low 65536 5000 setb tr0 setb et0 setb ea clr a sj...