彙編 判斷乙個兩位十進位制數是否為平方數

2021-10-04 21:28:12 字數 1112 閱讀 4179

思路

這道題的思路非常簡單,列舉100以內的平方數,再判斷是否與輸入的數相等

但用組合語言實現可能會有一些複雜

**

data segment

x dw ?

s1 db ' is a square number$'

s2 db ' is not a square number$'

data ends

code segment

assume cs:code,ds:data

main proc far

start:

mov ax,data

mov ds,ax

mov ah,

01h//輸入這個數的十位

int21h

sub al,

30h mov bl,

10 mul bl

mov x,ax//注意x是字型別

mov ah,

01h//輸入這個數的個位

int21h

sub al,

30h mov ah,

0 add x,ax//注意x是字型別

mov cx,

9//迴圈次數,同時用來列舉平方數

l1:mov al,cl

mul al//求al中數的平方

mov ah,

0 cmp x,ax//注意x是字型別

jz l2

loop l1

mov ah,

09h//輸出字串s2

lea dx,s2

int21h jmp l3

l2:mov ah,

09h//輸出字串s1

lea dx,s1

int21hl3:mov ax,

4c00h

int21h main endp

code ends

end start

執行結果

彙編學習 一位十六進製制數轉換為十進位制數

程式執行效果如下 如題,此程式只能實現一位十六進製制數的轉換 具體 如下 datas segment buf db 5 dup msg1 db please input a hex number 13,10,設定提示 msg2 db the dec number 13,10,ctlf db 13,1...

非壓縮的bcd碼表示的兩位十進位制運算

x y t並把結果存入u u 1,u 2,u 3 data segment x dw 2 dup y dw 2 dup t db 1 dup u db 1 dup z dw 2 dup i dw 2 dup j dw 2 dup k db 1 dup m db 1 dup n db 1 dup da...

怎麼將乙個十六進製制數轉變成十進位制數

在程式中,我們有時需要將乙個十六進製制字串轉換為十進位制數字。比如 char ptr 0x11 int n 0 我們想讓n等於0x11,即17 通常我們在c中,想將乙個字串轉換為一整形數字,通常會使用下面的方法 view plaincopy to clipboardprint?char ptr 12...