組合語言進製轉換,怎麼用組合語言編寫乙個16進製制轉換成2進製數的程式

時間 2022-04-20 03:32:58

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