組合語言,查表法輸出立方值,組合語言題目 從鍵盤上輸入0 9之間的任意乙個數字,利用查表的方法計算其平方值,並將計算的結果在

2022-07-07 15:27:57 字數 3299 閱讀 2262

1樓:匿名使用者

mov ah,1;輸入並回顯n

int 21h

push ax

mov ah,2;回車換行

mov dl,0ah

int 21h

mov dl,0dh

int 21h

pop ax

有些函式會改變ax暫存器裡的值,你能通過嗎在我電腦上編譯都通不過。

組合語言題目 從鍵盤上輸入0~9之間的任意乙個數字,利用查表的方法計算其平方值,並將計算的結果在 100

2樓:匿名使用者

data segment

buffer db '0 , 0h $','1 , 1h $','4 , 4h $','9 , 9h $','16,10h $'

db '25,19h $','36,24h $','49,31h $','64,40h $','81,51h $'

mub db 0

data ends

code segment

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

mov ah, 1

int 21h ;輸入一字元mov mub,al ;暫存輸入的字元mov dl,13 ;換行mov al,02h

int 21h

mov al,mub ;取字元cmp al, '0' ;確定字元範圍0~9jb exit

cmp al, '9'

ja exit

and al, 0fh ;al=0~9mov bl,08

mul bl

mov dx, offset buffer ;列印選單add dx,ax

mov ah, 9

int 21h

exit:

mov ah,4ch ;退出程式int 21h

code ends

end start

3樓:做而論道

自己寫的:

assume cs:code, ds:datadata segment

out_table dw pf0, pf1, pf2, pf3, pf4, pf5, pf6, pf7, pf8, pf9

;pifang_table

pf0 db 13, 10, '0, 0h $'

pf1 db 13, 10, '1, 1h $'

pf2 db 13, 10, '4, 4h $'

pf3 db 13, 10, '9, 9h $'

pf4 db 13, 10, '16, 10h $'

pf5 db 13, 10, '25, 19h $'

pf6 db 13, 10, '36, 24h $'

pf7 db 13, 10, '49, 31h $'

pf8 db 13, 10, '64, 40h $'

pf9 db 13, 10, '81, 51h $'

data ends

code segment

start:

mov ax, data

mov ds, ax

mov ah, 1

int 21h ;輸入一字元cmp al, '0'

jb exit

cmp al, '9'

ja exit

and al, 0fh ;al=0~9mov ah, 0

mov bx, ax ;bx=0~9add bx, bx

mov ax, [bx] ;查表得出結果lea dx, out_table

add dx, ax

mov ah, 9 ;顯示int 21h

exit:

mov ax, 4c00h

int 21h

code ends

end start

4樓:匿名使用者

org 100h

mov ah,1

int 21h

lea bx,msg

sub al,30h

add al,al

add bl,al

mov dl,[bx]

mov ah,2

int 21h

mov dl,[bx+1]

mov ah,2

int 21h

retmsg db '00010409162536496481'

組合語言裡面的查表法是什麼意思啊。在微控制器裡面是怎麼執行的啊~~~~

5樓:六弦七品

首先,你要明確查表法是為了節約運算時間而建立的對映關係,在嵌入式中尤其重要,把複雜公式的運算事先計算好,存起來,然後直接根據輸入值查詢。而硬體原理無論在什麼平台都一樣,固化在rom裡面,根據位址,定址後找到相應的位址單元,取值,然後應用。

6樓:做而論道

51微控制器組合語言有一條查表指令是:movc a, @a+dptr

它不是單獨使用的,要和 db 偽指令配套使用。

例如:若累加器a中有乙個0~9的數,請用查表法求出該數的平方值,設平方表表頭位址為1000h。

程式如下:

;-------------------------------------

mov dptr,#1000h

movc a,@a+dptr

……org 1000h

db 0, 1, 4, 9, 16, 25......

;-------------------------------------

「db」,在rom 1000h中,順序存放了一系列的「平方」資料。

movc a,@a+dptr指令中a如果等於0,就會在「平方」資料中取出第0個,就是0;

movc a,@a+dptr指令中a如果等於1,就會在「平方」資料中取出第1個,就是1;

movc a,@a+dptr指令中a如果等於2,就會在「平方」資料中取出第2個,就是4;

movc a,@a+dptr指令中a如果等於3,就會在「平方」資料中取出第3個,就是9;

…… movc a,@a+dptr指令中a如果等於9,就會在「平方」資料中取出第9個,就是81。

組合語言題目,組合語言題目,求詳解

a2,b2,是a的平方,還是a 2?兩個數相乘,就要考慮溢位問題。y是32位?還是16位?需不需要考慮溢位?dseg segment org d 開始地址d a dw b dw c dw dseg ends assume cs cseg,ds dsegcseg segment start mov a...

組合語言問題,關於輸出字串,組合語言問題,輸出了正確結果,但是下面還輸出了許多亂碼

沒大bai毛病,2處錯誤 decs sub ax,dx 這裡錯du了,dec不是幹這活zhi的.dec ax,dx 原數的兩dao個絕對值相版減 loop next mov ah,4ch 這裡加上退出指令。int 21h 其它權的沒問題。code ends 組合語言問題,輸出了正確結果,但是下面還輸...

組合語言題目從鍵盤上輸入0 9之間的任意數字,利用查表的方法計算其平方值,並將計算的結果在

data segment buffer db 0 0h 1 1h 4 4h 9 9h 16,10h db 25,19h 36,24h 49,31h 64,40h 81,51h mub db 0 data ends code segment assume cs code,ds datastart mo...