1樓:永恆
code segment
assume cs:code
org 100h
start:jmp begin
begin:push cs
pop ds
push cs
pop es
mov cx,100
mov ax,0
mov bx,1
again:
add ax,bx
call dispaxs
push ax
push dx
mov ah,2
mov dl,13
int 21h
mov dl,10
int 21h
pop dx
pop ax
inc bx
loop again
mov ah,4ch
int 21h
;****************************************=
; 將要顯示的有符號數置於 ax 中
dispaxs proc near
push ax
push bx
push cx
push dx
push si
push di
push bp
push ds
push es
pushf
push cs
pop ds
push cs
pop es
mov cx,6
lea di,dispaxss
@dispaxs:
mov byte ptr [di],32
inc di
loop @dispaxs
push ax
mov dl,32
mov ah,2
int 21h
pop ax
mov byte ptr nzs,0
mov byte ptr signs,0
cmp ax,0
jge @dispaxs0
mov byte ptr signs,1
neg ax
@dispaxs0:
push ax
lea si,divarrs
lea di,dispaxss
inc di
mov cx,5
@dispaxs1:
pop ax
mov dx,0
mov bx,[si]
div bx
push dx
cmp al,0
jne @dispaxs2
cmp byte ptr nzs,1
je @dispaxs2
cmp cx,1
je @dispaxs2
mov dl,20h
jmp @dispaxs3
@dispaxs2:
add al,30h
mov dl,al
mov byte ptr nzs,1
@dispaxs3:
mov byte ptr[di],dl
inc si
inc si
inc di
loop @dispaxs1
pop dx
cmp byte ptr signs,1
jne @dispaxs6
lea si,dispaxss
add si,5
@dispaxs4:
cmp byte ptr [si],32
je @dispaxs5
dec si
jmp @dispaxs4
@dispaxs5:
mov byte ptr [si],'-'
@dispaxs6:
lea dx,dispaxss
mov ah,9
int 21h
popf
pop es
pop ds
pop bp
pop di
pop si
pop dx
pop cx
pop bx
pop ax
retdivarrs dw 10000,1000,100,10,1
nzs db 0
signs db 0
dispaxss db 32,32,32,32,32,32,'$'
dispaxs endp
;******************************====
code ends
end start
2樓:一隻喜麻雀
太難了~~~~(>_<)~~~~
組合語言 編寫程式實現自然數1到100的累加。要求用兩種方法來程式設計實現。
3樓:
第一種:
mov cx,100
mov ax,0
mov bx,1
again:add ax,bx
inc bx
loop again
第二種mov cx,100
mov ax,0
loop1:add ax,cx
loop loop1
截圖靠自己吧~記得給分啊(*^__^*) 嘻嘻……
用c語言編寫程式,求1+1/(1+2)+1/(1+2+3)+... +1/(1+2+...+n),並將結果存放到s。
4樓:匿名使用者
#include
int main()
printf("%g",s);
return 0;
}需注意詹俊峰給的是典型的錯誤答案,請樓主思考為什麼。
5樓:匿名使用者
#include
float ff(int n)
return sum;
}void main()
6樓:詹俊峰
float a=0,b=1,s=0;
int i,n;
scanf("%f",&n);
for(i=0;i printf("s=%f",s); 7樓:匿名使用者 # include #include float fun(int n) return s; }main() 用微控制器組合語言編寫1+2+3 +‥‥‥+99+100的求和運算程式, 結果用十進位制顯示在微控制器實驗系統數碼管上。 8樓:匿名使用者 設ax=1 bx=0 axx =0 bxx=0loop: mov a,ax add a,bx daa bx ;ax+bx換做10進位制放入bxmov a,axx adc a,bxx daa bxx ;axx帶進位標誌+bxx換做10進位制放入bxx mov a,1h add a,ax daa ax 遞增ax(10進位制)mov a,00h xor a,ax snz z ax=0結束 ≠0迴圈jmp loopend c語言迴圈題!編寫一個程式,求s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)。 9樓:凌亂心扉 #include main() }printf("%d\n",sum);} 10樓:匿名使用者 修改如下 #include int main(void) printf("%d\n",s); return 0; }圖為原程式在第二層迴圈加了個輸出,查出第二層迴圈有問題。 11樓:匿名使用者 3個錯誤: 1、第9行,item=1應該是item=02、第10行,j<=n應該是j<=i 3、第14行,%d應該是%lf 除此之外:思路很蠢,演算法過於複雜,對於每個累加項,每次都要從1開始加。 #include void main() printf("%d\n",s);} 12樓:福建省寧德市 首先,你輸出的格式不對,s是double型的數,你卻寫了%d,應該改為printf(%f\n",s) 其次,你迴圈條件設的不對,裡面的j迴圈條件應該改為for(j=1;j<=i;j++) 還有就是item的值設定為0比較好,這樣比較好計算修改後的**如下 #include int main(void) printf("%f\n",s); return 0;} 13樓:匿名使用者 這種找規律的迴圈體寫一個統一的結構就行 14樓:兄弟連教育北京總校 #include void main() printf("%d",s);} 15樓:sin絕望 #include void main() else z=y/x; }printf("y=%f",z);} 學校畢業後就沒用過彙編了,sbb指令 一看還以為是sb的暱稱呢 sbb指令 sbb是帶借位減法專指令,它利用 屬了cf位上記錄的借位值。指令格式 sbb 操作物件1,操作物件2 功能 操作物件1 操作物件1 操作物件2 cf若ax 1020h,bx 1200h,cf 1,則sbb ax,bx的執行後... sseg segment stack stk db 50 dup 0 sseg ends dseg segment count equ 99 result dw dseg ends cseg segment assume ds dseg,cs cseg,ss ssegstart mov ax,dse... 這個是外部擴充套件的ram,fef0h是存資料的地址,mov dptr 0fef0h是給資料指標賦值,movx dptr,a是間接定址,將a中資料送到外部ram的fef0h中,中斷服務程式後面應該有reti,挺容易的,看看書,這例題允許了中斷,給出了中斷處理程式,自己看書學得較為深刻。ofefoh指...彙編程式sbb指令,彙編程式SBB指令
彙編程式1 2 3 99 ? 的程式
微控制器彙編程式,微控制器(組合語言)程式