組合語言求解大神進來,組合語言求解 大神進來

時間 2021-08-30 09:24:00

1樓:匿名使用者

三道題的答案分別是:

a9ceh  c86bh

1~100的累加  13bah

89ach  0000h

對應的turbo pascal內嵌彙編除錯程式如下:

varx,y:word;

h:array[0..3] of char;

function get16(x:word):string;

vari:integer;

s:string;

begin

s:='';

asmmov ax,seg h

mov ds,ax

mov es,ax

lea di,h

mov cx,4

mov ax,x

@1: push cx

mov cx,4

mov dx,0

@@1: shl ax,1

rcl dx,1

loop @@1

cmp dl,10

jge @2

add dl,30h

jmp @3

@2: add dl,37h

@3: mov byte ptr [di],dlinc di

pop cx

loop @1

end;

for i:=0 to 3 do s:=s+h[i];

get16:=s;

end;

begin

asmmov ax,723ah

mov bx,0c86bh

sub al,bl

sbb ah,bh

xor al,01h

adc ax,0

mov x,ax

mov y,bx

end;

writeln(get16(x),' ',get16(y));

writeln;

asmmov cx,100

shl ax,cl

@1: add ax,cx

loop @1

mov x,ax

end;

writeln(get16(x));

writeln;

asmmov ax,89ach

mov cx,2000h

xor dx,dx

@1: neg ax

add dx,ax

loop @1

mov x,ax

mov y,dx

end;

writeln(get16(x),' ',get16(y));

end.

2樓:做而論道

1。ax = a9ceh,  bx = c86bh。

2。功能:累加1~100, ax = 5050 = 13bah。

3。ax = 89ach,  dx = 0000h。

組合語言程式求解,來大神具體給我講解一下這個程式

3樓:匿名使用者

這是將地址3000h開頭的8個位元組數求和。

stack1 segment stack

dw 64 dup(?)

stack1 ends 是定義64位元組大小的堆疊段。

code segment

assume cs:code

start: mov si,3000h ; 將地址 賦給si

mov cx,0008h ;cx中存放迴圈次數,也是位元組個數

xor ax,ax ;ax清零

call branch;呼叫branch子函式

a5: jmp a5 ;程式結束,一直在此迴圈

branch: jcxz a4 ;判斷cx是否為0,為0調到ret,返回主程式

push si ;將si入棧

push cx ;將cx入棧

a1: add al,[si] ;將si中存放的地址處的數與al相加,結果存al

inc si ;地址加1,指向下一個數

a3: loop a1 迴圈加8次,將8個數之和存入了al。每次迴圈cx減1,直到cx為0,結束

pop cx ;

pop si ;cx,si出棧

a4: ret ;子程式返回

code ends ;**段結束

end start

謝謝採納,還有不懂地方可以追問啊

4樓:匿名使用者

路過,圍觀,求大神來解釋,同時,你應該加點分才是。

組合語言程式設計的題目,求大神幫忙做下唄~~ 10

5樓:匿名使用者

cadcc

1cde

2cde

3acd

4bcde

5ab1,題錯,應是01100100,多了個0oooox

組合語言問題,組合語言問題

蜜蜂小玉米 assume cs code assume ds data data segment db i love you.data ends code segment start mov ax,data mov ds,ax mov bx,0 s0 check mov al,ds bx cmp a...

組合語言程式設計,組合語言程式設計

org 0000h ljmp main org 000bh ljmp t0int org 0030h main mov tmod,01h mov th0,high 65536 5000 mov tl0,low 65536 5000 setb tr0 setb et0 setb ea clr a sj...

組合語言和反彙編的區別,學習組合語言有什麼好處

反彙編是分析已經有的程式的過程。就是看這些程式的彙編 看看這些程式是怎麼執行的。因為是逆向過程,所以加了反字。學習組合語言有什麼好處 組合語言更解決計算機的底層,彙編源程式執行效率高。一些高階語言都是先轉成彙編然後再轉成機器語言的。瞭解彙編可以幫組更好的瞭解高階語言,設計演算法啥的。如果你要是搞硬體...