mov a,#29h ;輸入六位數的被加數存入三個位元組中
mov 0f0h,a
mov a,#99h
mov 0f1h,a
mov a,#99h
mov 0f2h,a
mov a,#99h ;輸入六位數的加數存入三個位元組中
mov 0f3h,a
mov a,#99h
mov 0f4h,a
mov a,#99h
mov 0f5h,a
mov a,#00h ;計數字初始化賦值為0
mov 0f6h,a
mov a,#00h ;進製位初始化賦值為0
mov 0f7h,a
mov a,0f2h ;取被加數的低位位元組放入r0暫存器中
mov r0,a
mov a,0f5h ;取加數的低位位元組放入r1暫存器中
mov r1,a
jmp tt1 ;乙個位元組中的低位相加函式入口
t1: mov a,r2 ;將低位計算的結果從r2暫存器中取出存放在0f8h位址儲存器中
mov 0f8h,a
jmp tt2 ;乙個位元組中高位相加函式入口
t2: mov a,r2 ;將高位計算的結果從r2暫存器中取出放在0f9h位址儲存器中
mov 0f9h,a
mov a,0f1h ;取被加數的中間位位元組放入r0暫存器
mov r0,a
mov a,0f4h ;取加數的中間位位元組放入r1暫存器中
mov r1,a
jmp tt1 ;進入位元組中低位位相加函式的入口
t3: mov a,r2 ;將位元組中計算結果從r2中取出放置0fah中去
mov 0fah,a
jmp tt2 ;進入位元組中高位的計算函式入口
t4: mov a,r2 ;將計算結果從r2中取出放置0fbh中。
mov 0fbh,a
mov a,0f0h ;將被加數高位位元組取出放入r0暫存器中
mov r0,a
mov a,0f3h ;將加數高位位元組取出放入r1暫存器中
mov r1,a
jmp tt1 ;進入位元組中低位計算函式入口
t5: mov a,r2 ;將低位計算的結果從r2中取出放入儲存位址為0fch中
mov 0fch,a
jmp tt2 ;進入位元組中高位計算函式入口
t6: mov a,r2 ;將結果從r2暫存器中存入以0fdh為位址的儲存器中
mov 0fdh,a
; 結果輸出
mov a,0f8h ;輸出低位結果到暫存器r3
add a,0f9h
mov r3,a
mov a,0fah ;輸出結果中位到暫存器r2
add a,0fbh
mov r2,a
mov a,0fch ;輸出結果中高位到暫存器r1
add a,0fdh
mov r1,a
mov a,0f7h ;進製位結果輸出到暫存器r0中
mov r0,a
loop: ;程式結束
jmp loop
tt1: ;位元組中低位位計算
mov a,0f6h ;計數字加一
add a,#01h
mov 0f6h,a
mov a,r0 ;將被加數從r0暫存器取出
and a,#0fh ;取出被加數位元組中的低位數
mov r2,a ;將取出的低位存至r2暫存器中
mov a,r1 ;取出加數從r1暫存器取出
and a,#0fh ;取出加數字節中低位數
mov r3,a ;將取出的低位存至r3暫存器中
add a,0f7h ;與進製位相加
add a,r2 ;與被加數相加
mov r2,a ;將結果儲存至r2暫存器中
and a,#10h ;將結果與10h相與去出第五數字
sub a,#10h 將取出的數字與10h相減判斷是否有進製
jz ttt1 ;有進製跳轉到進製處理子函式
mov a,#09h ;將09h賦給暫存器a
sub a,r2 ;比較r2中的數值與09h的數值的大小
jc ttt2 ;大於09h說明有進製跳轉到結果為0ah~0fh之間的處理函式
mov a,#00h ;當範圍落到00h~09h之間時,將進製位清零。
mov 0f7h,a
jmp ttt3 ;加法處理結束,進入返回主調函式判斷階段
ttt1: ;當結果結果超過10h時進行的處理子函式
mov a,r2
and a,#0fh
add a,#06h ;將運算結果少加的06h加上
mov r2,a
mov a,#10h ;將進製位賦值為10h,等待高位計算時用該進製位
mov 0f7h,a
jmp ttt3 ;低位加法結束,進入結束返回主調函式判斷函式
ttt2: ;當結果處於0ah~0fh時處理的子函式
mov a,r2
sub a,#0ah ;減去0ah保留下應當當留存的數值
mov r2,a ;將處理數值儲存在r2暫存器中
mov a,#10h ;將進製位賦值為10h,等待高位處理
mov 0f7h,a
ttt3: ;返回主調函式判斷函式
mov a,0f6h ;取出標記位裡面儲存的數值
sub a,#02h ;將其與02h進行求查,來判斷返回主調函式的位置
jc t1
jz t3
jmp t5
tt2: ;位元組內高位處理函式
mov a,r1 ;從r1暫存器中取出
and a,#0f0h ;取出該加數的高位數
mov r3,a ;將高位數存至r3暫存器
mov a,r0 ;從r0暫存器中取出被加數
and a,#0f0h ;取出被加數的高位數
mov r2,a ;將取出的高位數存至r2暫存器
add a,0f7h ;同時與進製位相加
add a,r3 ;再與被加數的結果
jc ttt4 ;判斷是否產生進製,若有進製就跳轉到有進製處理函式ttt4
mov r2,a ;如果沒有進製就將結果存至r2暫存器
mov a,#90h ;判斷結果與90h的大小
sub a,r2
jc ttt5 ;大於90h就產生進製,就跳轉到ttt5
mov a,#00h ;小於90h就將進製位賦值為0
mov 0f7h,a
jmp ttt6 ;位元組中高位數加法結束進入返回主調函式階段
ttt4: ;當相加有進製時的處理函式
add a,#60h ;計算的結果加上60h
mov r2,a ;並將結果存至r2暫存器
mov a,#01h ; 將進製位賦值為01h,
mov 0f7h,a
jmp ttt6 ;位元組高位相加結束,進入返回主調函式判斷函式
ttt5: ;相加的結果範圍在a0h~f0h時,處理結果函式
mov a,r2 ;從暫存器r2中取出結果
sub a,#0a0h ;將結果的數值減去a0h
mov r2,a ;將結果存至r2暫存器
mov a,#01h ;將進製位賦值為01h,等待下一位元組低位數相加用
mov 0f7h,a
jmp ttt6 ;位元組高位數相加結束,進入返回主調函式判斷函式
ttt6: ;返回主調函式判斷函式
mov a,0f6h
sub a,#02h
jc t2
jz t4
jmp t6
shell命令實現 bc計算器
我們將程式分為兩個部分 1.主程式bcmain.c include headall.h 實現bc程式 其主要功能是用來進行加減乘除的運算 其本質是乙個客戶端 伺服器的模型 pipe dc stdin 0 bc dc stdout1 pipe dc 使用者首先會連線到bc並將bc連線到dc,呼叫dc程...
1017 A除以B(C語言實現)
本題要求計算 a b,其中 a 是不超過 1000 位的正整數,b 是 1 位正整數。你需要輸出商數 q 和餘數 r,使得 a b q r 成立。輸入在一行中依次給出 a 和 b,中間以 1 空格分隔。在一行中依次輸出 q 和 r,中間以 1 空格分隔。123456789050987654321 7...
PARTITION 2000實現方式
drop table test create table test id int,groupname varchar 20 name varchar 20 gage int insert into test select 1,中國 劉德華 34union select 2,越南 周杰倫 3union...