1樓:匿名使用者
比如若在某儲存區中已輸入4個ascii碼表示的的16進製制數碼(高位在前),把它們轉換為2進製資料放入bx暫存器對中,並顯示在螢幕上。
可以這樣
data segment
buff db 31h,32h,41h,42hnum db 16 dup (0)
data ends
code segment
assume cs:code,ds:datastart:
mov ax,data
mov ds,ax
mov si,offset buff
mov di,offset num
mov cx,4
jo4:
mov al,byte ptr buff[si]cmp al,9
jbe jo
sub al,7h
jo:sub al,30h
mov bl,2
jo3:
div bl
cmp al,0
mov byte ptr num[di],ahinc di
jz jo2
jmp jo3
jo2:
inc si
loop jo4
mov cx,4
jo6:
push cx
mov cx,4
jo5:
mov di,offset num
mov al,byte ptr num[di+3]add al,30h
mov dl,al
mov ah,02h
int 21h
dec di
loop jo5
pop cx
add di,4
loop jo6
mov ah,4ch
int 21h
code ends
end start
2樓:做而論道
採納答案的程式,是錯誤的。
另外,提問者、回答者,是同乙個人?
怎麼用組合語言編寫乙個16進製制轉換成2進製數的程式
組合語言程式輸入一位十進位制轉換為二進位制
3樓:做而論道
判斷某個位,用 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
===========
也可以參考我以前的回答:
4樓:
你這太複雜了!
用移位指令逐位判斷並顯示會簡單很多。……自己試試看。
看看這個**,我在debug下直接寫的,簡單不?
組合語言16進製制轉換成10進製,並輸出顯示
5樓:做而論道
assume cs:code
code segment
start: mov ax,47eh
(mov cx, 0 )
mov bx,10
disp1: mov dx,0
div bx
( push dx )
inc cx
or ax,ax
jne disp1
disp2:
mov ah,2
(pop dx )
(add dl, 30h ) --應該加上一行int 21h
loop disp2
( mov ah, 4ch )
( int 21h )
code ends
(end start ) --應該加上一行
組合語言十六進製制轉換成ascii
6樓:永恆
codes segment
assume cs:codes
start:
push cs
pop ds
;此處輸入**段**
mov bx, 8421h ;給定乙個4位的16進製制數
mov ah, 2 ;向標準輸出裝置輸出乙個字元
mov cx, 16 ;迴圈16次
again:
mov dl, '0' ; 假定當前bx的最高位為0
add bx, bx ; bx=bx*2 也就是左移1位
jnc disp ; 進製標誌不置位時(即bx的最高位為0時)轉disp
inc dl ; 進製標誌置位時(即bx的最高位為1時)加1
; 也就是變為 '1'
disp:
int 21h
loop again
mov ah, 4ch ;程式結束
int 21h
codes ends
end start
組合語言,把二進位制轉為十進位制顯示輸出,怎麼寫,什麼思路,不懂,求大神講解
用組合語言編寫一完整程式,用組合語言編寫乙個程式。
江西理工大學 今天下午剛好咱們上機課,做了這個題,給你完整答案如下 datas segment 此處輸入資料段 buff dw 5,25,55,115,138,159,196,163,20,255 dat dw 0 show db 4 dup 0 datas ends stacks segment ...
使用組合語言寫課程設計,用組合語言如何編寫計算n!的課程設計
彙編,好久沒用的語言了。難度不小啊 用組合語言如何編寫計算n!的課程設計 本程式通過編譯,執行正確 code segment assume cs code,ds coden equ 8 start mov cx,n cmp cx,1 n 1?ja next 是,階乘 mov ax,1 n 1,n 1...
用組合語言編寫小小程式,用組合語言編寫乙個小小程式
這個還不簡單 includevoid main 如何用組合語言寫個小程式 hello word!堆疊段 stack segment stack db 100 stack ends 資料段 data segment szhello db hello,word 0dh,0ah,data ends 段 c...
利用組合語言編寫程式,利用組合語言編寫程式
採納答案,用錯了語言。題目說 片內ram.這應該是 51 微控制器的。下面的程式,是求a b的平方和,存入c單元。mov a,30h call fing fang mov 32h,a mov a,31h call fing fang add a,32h mov 32h,a sjmp fing fan...
微控制器的用組合語言程式設計,微控制器的用組合語言程式設計
k1 equ p1.0 k2 equ p1.1 k3 equ p1.2 org 0000h ljmp main org 000bh ljmp t0isr org 0030h main mov tmod,11h mov th0,high 65536 50000 mov tl0,low 65536 50...