80x86 組合語言 正負數分別存放 統計個數

2021-07-09 15:03:00 字數 2232 閱讀 2808

自己定義一組有符號的位元組數(小於100個),

然後將其分別存入兩個陣列中,其中正數和負數的個數分別存入各自陣列的第乙個單元,

最後顯示正數的個數和負數的個數,形式為:「+n」和「-m」,

要求:統計部分用乙個過程完成,顯示部分用乙個過程或軟中斷完成,

軟中斷的向量自己根據系統要求決定。

提問者採納   2014-06-13 19:51 

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

assume  cs:cc, ds:qw

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

qw  segment

m_1  db  12, 13, 10, -5, -85, 37, 92, -25, 94, 10, -36

db  1, 100, 12, -37, 85, -6, 28, 125, 34, 17, -92

lll  equ  $ - m_1

m_p  db  101 dup(0)

m_n  db  101 dup(0)

msg  db  13, 10, 'press any key to continue ... $'

o_p  db  13, 10, '+$'

o_n  db  13, 10, '-$'

qw  ends

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

cc  segment

start:

mov   ax, qw

mov   ds, ax

; call  tongji

call  display

exit:

lea   dx, msg

mov   ah, 9

int   21h

mov   ah, 7

int   21h

mov   ah, 4ch

int   21h       ;返回dos

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

tongji:

mov   bx, offset  m_1

mov   si, offset  m_p

mov   di, offset  m_n

mov   cx, lll

lp: mov   al, [bx]

cmp   al, 128

jb    zheng

mov   [di + 1], al

inc   di

inc   m_n

jmp   next

zheng:

mov   [si + 1], al

inc   si

inc   m_p

next:

inc   bx

loop  lp

ret;---------------------------

display:

lea   dx, o_p

mov   ah, 9

int   21h

mov   al, m_p

mov   ah, 0

call  output

lea   dx, o_n

mov   ah, 9

int   21h

mov   al, m_n

mov   ah, 0

call  output

ret;---------------------------

output:

mov   bx, 10

mov   cx, 0

ol1:mov   dx, 0

div   bx

add   dl, '0'

push  dx

inc   cx

cmp   ax, 0

jnz   ol1

mov   ah, 2

ol2:pop   dx

int   21h

loop  ol2

ret;---------------------------

cc  ends

end  start

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

提問要求的過程,這裡都有了,並且使用了簡便形式。

程式執行結果如下:

c:\masm>ww

+15-7

press any key to continue ...

c:\masm>

提問者評價:謝謝。

80x86組合語言 分類統計

組合語言的程式設計題!急 有100個學生成績,存放在以data為首址的位元組儲存單元中。試統計其中90 含90 以上的人數,60 90 含60 之間的人數,60以下的人數,分別存入max,middle,min三個變數中。15 分鐘前 做而論道 十七級 最快回答 assume ds qq,cs cc ...

組合語言 80x86定址方式

1 立即定址方式 立即定址方式中指令的運算元是8位或16位立即數,並直接出現在指令中。例如 mov al,10h 源運算元為立即定址 執行後al 10h mov ax,0a48h 源運算元為立即定址 執行後ax 0a48h 立即定址只能用於源運算元,不能用於目的運算元。2 暫存器定址方式 暫存器定址...

80x86組合語言定址方式介紹

運算元直接包含在指令 中,可以是8或者16位。立即數作為指令的一部分,直接從biu指令佇列取出,因此速度更快。唯一缺點 只能作為源運算元。指令中所需的運算元在cpu某個暫存器中,可以是8位 16位段暫存器,這個操作完全在cpu內部,因此執行也很快。以下指令需要cpu以外的東西參與用符號或者常數表示 ...