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