組合語言 兩個2位的十進位制數相乘,要求結果用十進位制數輸出,求

時間 2021-08-14 23:04:29

1樓:轉頭空夢

你十進位制數十已經知道捏 還是 還不知道

如果知道的話 直接轉換成 十六進位制 然後 開始乘法程式 18乘以40 即 12h*28hdata segment

tab db 12h

tbb db 28h

may db 10 dup(?),'$'

data ends

code segment

assume cs:code,ds:datastart:mov ax,data

mov ds,ax

lea si,may

xor ax,ax

xor dx,dx

mov al,tab

mov cl,tbb

mul cl

mov bx,10

next1:div bx

add dx,30h

mov [si],byte ptr dx

inc si

xor dx,dx

and ax,ax

jnz next1

mov cx,3

lea si,may

next2:mov dl,[si+2]

mov ah,2

int 21h

dec si

loop next2

mov ah,4ch

int 21h

code ends

end start

2樓:之鑲巧

。小模型

。 startup

。的code

mov ah,1

int 21h

mov bh,al

mov ah,1

int 21h

mov bl,al

地址bh,bl

daamov dl,bh

mov ah,9

int 21h

mov ah,4ch

int 21h。退出

組合語言編寫程式:兩個十進位制兩位數相乘,並輸出結果,跪求啊啊啊!!

3樓:鳳凰是聖鳥

;兩位十進位制數相加,並將結果輸出

mov ah,1

int 21h

mov bh,al

and bh,0fh

mov ah,1

int 21h

mov bl,al

and bl,0fh

mov ah,2

mov dl,'+'

int 21h

mov ah,1

int 21h

mov ch,al

and ch,0fh

mov ah,1

int 21h

mov cl,al

and cl,0fh

add bh,ch

;cmp bl,'9'

;add bl,2h

add bl,cl

;cmp bl,'9'

;add bl,2h

mov ax,bx

aaaadd ax,3030h

mov bx,ax

mov dl,'='

mov ah,2

int 21h

mov dl,bh

int 21h

mov dl,bl

int 21h

4樓:匿名使用者

先變成二進位制,乘完

然後轉換成十進位制輸出

用組合語言將兩個兩位十進位制數相加

5樓:永恆

code  segment

assume    cs:code

str1  db        '99+88','=$'

x  db        2 dup(0)y  db        2 dup(0)re  db        3 dup(0),'$'

start:

push      cs

pop       ds

push      cs

pop       es

lea       dx,str1

mov       ah,9

int       21h

lea       si,str1

mov       al,[si+1]

and       al,0fh

mov       x,al

mov       al,[si]

and       al,0fh

mov       x+1,al

mov       al,[si+4]

and       al,0fh

mov       y,al

mov       al,[si+3]

and       al,0fh

mov       y+1,al

mov       al,x

add       al,y

aaapushf

or        al,30h

mov       re+2,al

popf

mov       al,x+1

adc       al,y+1

aaapushf

or        al,30h

mov       re+1,al

popf

mov       al,0

adc       al,0

or        al,30h

mov       re,al

lea       dx,re

mov       ah,9

int       21h

mov       ah,4ch

int       21h

code  ends

end       start

彙編兩個十進位制數相加以二進位制迴圈輸出怎麼編寫,彙編剛入門,看不懂複雜的指令,麻煩簡單點,謝謝 20

6樓:匿名使用者

cseg segment

assume cs:cseg

start:

mov ax, 20 ; 計算

add ax, 40 ; 20+40

mov bx, ax ;儲存計算結果到bx中,供下面列印2進位制使用mov cx,16  ;2進位制,16位暫存器,共16個bit,需要循回

環16次

mov ah,0eh ;使用int 10h的輸出答功能p1:rol bx,1   ;把bx最高1位,移到最低1位,供輸出用mov al,bl  ;把bl拷貝到al,供輸出用and al,1   ;只保留最低1位的值,即剛才bx中最高位的值xor al,30h ;轉換為ascii值'0',或'1'

int 10h    ;呼叫10h中斷,輸出到螢幕上loop p1    ;迴圈

mov ah,4ch ;程式執行完畢,退出到系統int 21h

cseg ends

end start

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

做而論道 判斷某個位,用 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 9s...

組合語言 數16進位制的數的位是1的個數,必須用巨集和子程式。懂的人來(網上有是錯的,貼上勿擾)

做而論道 組合語言 數一個16進位制的數的位是1的個數,必須用巨集和子程式。例如如下 螢幕上如下顯示 12ab是隨便輸入的一個16進位制數,7是答案 please input a number in hex from 0000h to ffffh 12abthere are 7 bit s in n...

二進位制到十進位制轉換(組合語言)我看不明白

天氣雷達 1 mov dx,0 2 mov bx,10 除以10的原因 例如假設ax中的二進位制數 十進位制數1234 那麼 1234 10 得餘數4 即得到個位數 這個時候即 餘數 原來個位數 這是一個關鍵 因下面6 對應這句 123 10 會得到餘數 3 即餘數 原來的十位數 3 div bx ...