31、16位二进制,对高位和低位进行逻辑与及或运算 (1)SOURCE[BX] (2)DL (3)OR! B8 K, A; E: p6 P9 c* z
(4)AL (5)MOV [DI],AX (6)DEC CX
% d" J/ w* I7 j# A5 U5 K9 n 32、16进制数转成ASCCII,先高4位...
: c5 c" ~' N" E2 _. L5 P; o$ U LEA SI,SOURCE
( y, ? |" O: _5 _! E3 r LEA DI,RESULT" Y9 P0 k) y* ~
MOV CX,N t) v; @. ^% |5 L; U& `! _
LOOP2: MOV BL,2* w# }6 n* H7 k2 U; u; Y" `$ C
MOV AL,[SI]
9 b; f( E n2 i; u; L) [3 ^ MOV AH,AL1 k. d5 j! R* M" a6 W0 o) y! [* `( Z
PUSH CX( s/ s$ G) N) u8 X2 N
MOV CL,4
1 e, i7 P/ [7 M/ o5 w; q: C SHR AL,CL
9 | I! {( g% f6 \1 i: _, C) o POP CX4 V E7 H0 l. n# a
EXCH: CMP AL,9
K3 f: c" q3 H& h1 Q JNA CHAR/ a4 Z8 x* N& h* z
ADD AL,07H, v4 N1 ?4 g: L9 Z1 S
CHAR: ADD AL,30H! D) U0 t$ C7 r5 @4 {. E& x/ m
MOV [DI],AL
2 f2 P/ X% l0 ~5 y. l INC DI
! v8 H3 r# @2 r$ N1 D4 S2 G DEC BL
0 _* Y: s. h% p X JZ LOOP1! i2 W1 M5 K3 y3 p3 E
AND AH,OFH! ~- V, I& `& ~6 q! G
MOV AL,AH
- X% h# J0 `0 u' Q/ a JMP EXCH t8 w- D. P% z, u+ m
LOOP1: INC SI5 s' l, f' n- B5 L5 ]
LOOP LOOP2% q) e; `3 F( C l1 M; ~' m) [
33、在ASCII串的每个字符在最高位加上奇校验位
% U7 h3 v! v/ K( v, Z( h: k0 p5 s LEA SI,SOURCE
- V( ?& n K6 ^+ T& o LEA DI,RESULT
u3 Y5 a- r3 M$ s LOOP2: MOV AL,[SI]( o3 S+ |7 J8 I4 e. y
CMP AL,00H
% c0 O9 W4 r' M6 X4 c7 G+ Z: H' o JE EXIT
C! Y* f: S1 q* k, x ADD AL,0
_& y: @+ _& Z( d5 @' J5 R JNP LOOP1
6 N I; w8 ]0 J, Y+ \. J OR AL,80H
+ E; t C2 D+ p6 l4 b' V' W3 n$ a. O LOOP1: MOV [DI],AL. ?( J- A1 J _, ^7 T
INC DI0 X; B( o" l7 t0 w
INC SI
% {0 l( X( t/ j3 ^ JMP LOOP2* M- \; A* a" U# l
EXIT: MOV [DI],AL, K+ P$ O& d) M, ~7 C2 e' W
34、 大写全变成小写: |& Z% s( @+ M ^9 P( c
LEA SI,SOURCE
2 L2 u# j" i* p' A5 q4 r/ Q LEA DI,RESULT- ` `6 N: N: m3 H7 g2 b
LOOP1: MOV AL,[SI]/ E5 }- u; { X9 T4 t
CMP AL,00H. s) R7 x K ^* _2 u" K8 ~, ^4 ^* Y
JE EXIT3 H+ a) k) e* E6 a8 M5 d( A
CMP AL,41H% e2 \5 z- r' f
JB KEEP
+ x( o9 a) ^: U3 ^" [6 s CMP AL,5AH4 H9 }* d& |4 L: r6 F
JNBE KEEP P( h9 y4 Q0 ?
ADD AL,20H
0 |: H8 o" O/ z$ S KEEP: MOV [DI],AL" L. O1 {, D' R: Q+ x Y2 l8 u' @- V# ^
INC DI
( k0 x G2 f& n# @* n/ ^; D INC SI
# T" z- |1 w9 z0 R$ W; |) X JMP LOOP1# x( b/ C0 N8 X
EXIT: MOV [DI],AL
% v- T* ] D: j d/ e @ 35、 去掉为负的奇数
3 K/ S( {2 a3 E! J, s LEA SI,SOURCE6 l. N$ z% `& o
LEA DI,RESULT
; x) P s8 q# l; Z1 _7 M MOV CX,20
1 d+ R6 w3 k0 ?$ ^; p( S0 x# F1 R' C LOOP1:MOV AL,[SI]
0 n8 j |& `6 k6 T% M MOV AH,AL/ ^/ L1 {+ \# H4 l4 m3 ^6 g+ c
SHR AH,1
9 k/ o% a; `8 k% j/ C% H JNC KEEP8 N$ I6 J% A/ G& H, b3 s* T) ~
CMP AL,0
) Y% z9 e+ {# f7 m7 }7 F JNL KEEP
* H3 B. w( ]% U9 r+ ~ JMP EXIT
8 X" V" `2 K1 Q" f/ a; y KEEP: MOV [DI],AL
2 R7 L7 n2 O4 b5 @2 P1 M; X INC DI
1 |$ ~, \- A" E+ ~9 N: g$ r EXIT: INC SI
/ L; b. w0 i) h# a l' o LOOP LOOP1
: L! T1 _* U6 D" l4 H$ o1 A$ o 36、串有连续的字符仅用一个字符代替
& y3 Q$ L# T. _. G7 y! T4 f LEA SI,SOURCE6 ?4 x% W H5 _: X
LEA DI,RESULT
: y6 Y; u0 ]: X$ Z LOOP1:MOV AL,[SI]
' M9 j. V7 K* Q5 J1 ` CMP AL,00H& u5 M; X+ h ^! m7 ]5 p2 Y2 y1 x/ G
JE EXIT
8 |+ ?4 C" d2 Z NEXT: INC SI0 ~6 g4 O" H2 p. m* K% b6 V
MOV AH,[SI]
4 i2 p9 G; X$ g9 Z' w CMP AL,AH0 x4 ?) b; x5 ]9 N% G* E( `5 ]
JE NEXT/ K: h9 R" _9 R
MOV [DI],AL
: Y1 ?' V/ U/ h! F INC DI, A9 l6 t) a j1 J/ U
JMP LOOP1 w0 {- s% B V1 r# L6 o
EXIT: MOV [DI],AL7 k' Q8 `- e% R# l; i$ q
37、对每个数进行右移,直到最低位为1 G; u; C, D& }( U3 [3 ^
(1)0 (2)TEST (3)NZ
5 i8 v0 }4 T& ^1 ~9 m2 B# ` (4)SHR (5)LOOP NEXT' s. v7 m9 K( _0 ~+ ~6 V
38、统计每个数中二进制数中1的个数; P+ H$ q3 h P- @& B+ e
(1)W (2)MOV BX,0 (3)NB! e" N9 g4 V$ F; @3 {$ M( i
(4)LOOP1 (5)INC DI
! U+ I& I* U! o 39、BCD码转成ASCII,并在最高位加偶校验位# w( t; a$ H" R
(1)AL,[SI] (2)SHR AL,CL (3)POP CX1 M) R# ]+ C+ L- {3 n3 J( [
(4)JP SERCH2 (5)ADD AH,30H (6)LOOP9 _, _0 O9 ]% F4 U% K/ c- c7 R2 c
40、无符号Ck=Ak除Bk
) R! l2 m% r* l+ E! d# X (1)MOV CX,N (2)DL,SOURCE[BX+N] (3)MOV AX! L3 M& {3 X! j! R9 `' ]
(4)DL (5)AX (6)INC BX( T+ e( C$ D! T f' n- ?( Z9 N+ w
(7)JNZ
$ c$ P6 s: u' Z' \ 41、16个10位二进制,DB9~DB0 000000 转成DB7~DB0 000000 DB9 DB8
' H; T6 g8 k# Q3 H (1)BYTEPTR SOURCE[BX]+1(2)CL (3)CL- ~- W+ Q' z( e9 S
(4)AH (5)AL
6 c4 g4 J A/ O& c9 A$ I 42、无符号字节,排成升序' @, A! X K; ]( T
(1)INC DI (2)NEXT0 (3)N-1" C1 r" v$ w% ], w
(4)SB (5)NEXT3 (6)AL
: B7 v% c0 W( q: ~ (7)NEXT2 (8)BX (9)NEXT1
M8 B, ]( X5 [- w 43、ASCII转成压缩BCD码
/ g0 }8 o$ Q/ k3 T (1)B (2)0FH (3)B
; o' b4 j( p5 t e% B5 g+ d (4)CX (5)4 (6)CX O9 r" |* }6 I0 E: O
(7)BL (8)B4 O, _5 c+ ]3 o1 O. C+ ~
44、BCD转成ASCII,高位BCD放高地址
: j+ x6 V- G1 H1 c (1)B (2)0FH (3)B
* y' @8 F9 }% O( x( R* O( d (4)BL (5)CX (6)4- z5 P: W& i- H6 Y
(7)CX (8)B
+ `) x: P) x( \$ E6 j/ q 45、无符号Ck=Ak+Bk
+ S- N9 u# O/ ?! W4 M6 w( T5 p (1)OFFSET RESULT (2)0 (3)MOV CX,N5 L F9 }( ]; G, G t/ I( Z5 `, Q
(4)ADD AL,SOURCE[BX] (5)ADC AH,0 (6)ADD DI,23 P* Q0 v3 z: v0 q+ P/ C3 d( [$ i- E
46、有符号Ck=Ak-Bk- g0 d) _; }/ ?* f
(1)SUB AL,SOURCE[BX+N] (2)JNS (3)0FF H0 h! F9 Y) l( ^- c
(4)JUMP1 (5)JUMP 1 (6)CBW [# X3 F: ~1 d* [: k
47、无符号Ck=Ak*Bk
4 w% F3 N0 Z4 |6 A- k- E (1)MOV DI (2)MOV CX,N (3)MOV AL
) i( \+ s; |0 ^" {% z/ S (4)MUL SOURCE[BX] (5)DEC CX
, H" o1 m9 K) Q# C' s 48、摇号机,统计0~9出现的次数( b% s, }3 d* m
(1)MOV AL,AH (2)AND AH,0F0H (3)SHR
+ l8 ^6 y( u/ J8 ^ (4)INC RESULT[BL] (5)INC RESULT[BL]! F: t' A* R9 P$ P5 q
49、摇号机,两号码相加为2,3,4,5,6,7,8的次数3 C: B1 E# b* ^+ E0 U& \( E
(1)BX (2)SHR (3)AH
" a- H* u' e) x) m; y" Z- g. f (4)BL , AL (5)SUB (6)INC RESULT[BX]
! t4 }! }# K0 O" F& ~' B 50、有符号Ck=Ak+Bk+ n$ V0 Z0 B0 _3 T4 }8 t% G
(1)SOURCE[BX+N] (2)ADD (3)0FFH) `& Y: g7 c! B2 t
(4)JUMP (5)CBW
8 [6 J) A- N* @) B0 \" ] 51、16个12位二进制DB11~DB0 0000转成DB7~DB0 0000 DB11~DB83 u6 v3 F( n( f5 ?) }6 E6 C
(1)4 (2)SOURCE[BX] (3)CL
+ \" H G [) n) m7 I1 }. G (4)CL (5)CL (6)AH,AL
' q: q6 X+ D* g" k5 c# } (7)AL (8)AH
h8 Q$ f( t/ d6 @4 g: t 52、10个无符号,近似法求近似平方根+ r" Y1 \* C: W# ` G/ N
(1)INC BX (2)JBE (3)INC BX& O, f u a. Q
(4)SHR BX,1 (5)INC DI (6)INC SI
- j+ G ?; R0 x6 ~$ n 53、有符号8位二进制,排成正负相间,负数排第一个
% Z; U6 g" V% T' Q; R8 z' E" w (1)80H (2)AL, BL (3) BL
' ?7 G* d0 O; i, w (4)DEC7 C) i0 N7 h. c. g
54、对内存中7个ASCII字符组成的字符串进行如下操作,在源串前加#,后加*,再放原异或的结果....
/ C) O; O( c2 Z7 ` (1)'# ' (2)00H (3)CHAR; [$ S4 \6 y- ^- I) t( e4 d1 ^2 f
(4)'* ' (5)0DH (6)0AH/ s" I q; J' P7 E1 ?# @ C
(7)EXIT
7 ]! a! ]/ C+ I/ G9 h" x 55、无符号Ck=Ak-Bk/ D4 g2 ] x9 m. ?1 w; _& K
(1)MOV CX,N (2)SOURCE[BX+N] (3)JNC! n! s. o& X4 n! G! }
(4)0FFH (5)[DI]5 e; q% [! I: q5 H( Y3 w
56、I*J矩阵转置,并计算每一行元素之和% @0 m9 V; x3 m) {1 K
(1)ADC CH,0 (2)CMP DX,I (3)ADD DI,2
. a) ^1 d. `) Y) c. k/ S (4)INC BX (5)LPJ
# M* p3 p7 [. A2 \ 57、Y[n]=Y[n-1]+delta if X[n]>Y[n-1]+delta......
% N$ ^: q1 n+ U (1)[DI-1] (2)NA (3)MOV [DI],BX
* r2 O' k% @1 v3 ~% b6 I (4)NB (5)MOV [DI],AL (6)MOV [DI],DX0 ]6 G q4 X0 x2 W
58、说明已过峰值,记录当前值 J0 m) }$ x4 g7 E; M# K
(1)XOR BX,DX (2)AND BX,80H (3)Z
' ]1 t9 b G7 U- O" q& g* l) v (4)STOSB (5)INC DI
0 d& X7 P5 |; | 59、ASCII,如果是0~9或A~F之间转成二进制8 h* [* \: T3 ?8 w v1 l0 b7 n. p
(1)MOV (2)MOV CX,N (3)'9'
+ i& g5 W @% V/ y! U0 ~& U) d9 P4 v (4)STRIP (5)'F' (6)INVALID6 h9 N0 U8 E3 }2 s+ O9 P k
(7)NEXT' Z# V# j" q& h3 i# r
60、20个无符号数,求它们的和(字型)
1 b* D b2 {/ u+ r2 k0 S' f (1)MOV AH,0 (2)ADD BX,AX (3)AL
9 H9 ]: S1 R1 l8 N$ y: @ (4)INC SI (5)INC DI (6)BX |