思路
這道題的思路非常簡單,列舉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...