第三章 (1) MOV CX, [BX+SII (2)ADD ARRAY(BX], AX (3)CMP BYTE PTR NUMBER, 0B6h (4) TEST BYTE PTR [BP+DI]VALUE, 80h (5) MOV BL, AL AND BL. OFOH MOV CL. 4 SHL AL, CL OR AL BL (6) MOV WORD PTR[DI, 0 SUB AX. AX 2、C、A、B、E、 3、(1)1200h (2)647Ah (3)7Dh, OB7h (1)LEA BX, TABLE ADD BX. 6 MOV CX, BX (2)LEA BX, TABLE MOV CX, IBX+6 (3)LEA BX, TABLE MOV SI6 MOV CX, [BX+SI 5、(1)寄存器2)存储器基址变址(3)立即数 (4)存储器寄存器 (5)寄存器 6、(1)类型不一致 (2)不能直接修改CS (3)没有指出类型 (4)不能用立即数给段寄存器赋值 (5)不能用段寄存器参与计算(6)CX不能当地址寄存器 (7)两个操作数不能都是内存单元(8)标号不能是关键字 7、(1)CX→DS:[2700h](2)DS:SI+50]→DH (3) ARRAY偏移地址→SI(4)DL+DS:[ BX+CF→DL (5)字DS:SI+ ALPHA偏移]的内容左移CL位 8、(1)BX内容(2)DS:[Bx] (3) AGAIN的偏移地址 (4)DS: [BX+DI 9、(1) EBIEH(2)E9D29H(3)EA00300020H E9ODFFH 10、(1)取内容与取地址 (2)与与或 (3)加内存单元与加寄存器 (4)减与比较 (5) SS: [BP+BX, DS: [BP+BX
第三章 1、 (1)MOV CX, [BX+SI] (2) ADD ARRAY[BX], AX (3) CMP BYTE PTR NUMBER , 0B6h (4) TEST BYTE PTR [BP+DI]VALUE, 80h (5) MOV BL, AL AND BL, 0F0H MOV CL, 4 SHL AL, CL SHR BL, CL OR AL, BL (6) MOV WORD PTR[DI], 0 SUB AX, AX 2、C、A、B、E、D 3、(1)1200h (2) 647Ah (3) 7Dh,0B7h 4、(1) LEA BX, TABLE ADD BX, 6 MOV CX, [BX] (2) LEA BX, TABLE MOV CX, [BX+6] (3) LEA BX, TABLE MOV SI, 6 MOV CX, [BX+SI] 5、(1)寄存器 (2) 存储器基址变址 (3)立即数 (4)存储器寄存器 (5)寄存器 6、(1)类型不一致 (2) 不能直接修改 CS (3) 没有指出类型 (4)不能用立即数给段寄存器赋值 (5)不能用段寄存器参与计算 (6)CX 不能当地址寄存器 (7) 两个操作数不能都是内存单元 (8)标号不能是关键字 7、(1) CX→ DS:[2700h] (2) DS:[SI+50] → DH (3) ARRAY 偏移地址→ SI (4) DL+DS:[BX]+CF→DL (5) 字 DS:[SI+ ALPHA 偏移]的内容左移 CL 位 8、(1)BX 内容 (2) DS:[BX] (3) AGAIN 的偏移地址 (4) DS:[BX+DI] 9、(1) EB1EH (2) E91D29H (3) EA00300020H (4) E90DFFH 10、(1) 取内容 与 取地址 (2) 与 与 或 (3) 加内存单元 与 加寄存器 (4) 减 与 比较 (5) SS:[BP+BX] ,DS:[BP+BX]
ll、SHR、AND、TEST 12、 AND AX,8000H 13、(1) MOV AX,5lH MOV CL, 2 SHL AX, CL (2) MOV AX,-46 MOV CL, 2 SHL AX. CL ADD AX. 8000H 14、0→0 FFFFh→0→2→ OFFFEh→ OFFFDh→5→4→0→0÷0 16、1B62H,B620H,B640H 第四章答案 Getlen proc moy bx. offset strI Xor Again Cmp byte ptr [bx],0 Jz exitp Mov ax, CX Ret PUSH AX and OFh POP BX PUSH BX MOV CX. 4 SHR BX POP DX PUSH IR DX. CL PUSH DX POP DX MOV CX. 12 SHL DX. CL POPCⅩ
11、SHR、AND、TEST 12、AND AX,8000H JZ XXXX 13、(1) MOV AX,51H MOV CL,2 SHL AX,CL (2) MOV AX,-46 MOV CL,2 SHL AX, CL ADD AX, 8000H 14、0→ 0FFFFh → 0 → 2 → 0FFFEh → 0FFFDh → 5 → 4 → 0 → 0 →0 15、NEG DX 16、1B62H,B620H,B640H 第四章 答案 1、 Getlen proc mov bx, offset str1 Xor cx, cx Again: Cmp byte ptr [bx], 0 Jz exitp Inc cx Jmp again Mov ax, cx Ret Getlen endp 2、 PUSH AX AND 0Fh POP BX PUSH BX MOV CX, 4 SHR BX, 4 POP DX PUSH DX MOV CX, 8 SHR DX, CL PUSH DX POP DX MOV CX, 12 SHL DX, CL POP CX
agai Int 21h Cmp al, 60h Jb again Cmp al, 7I Ja Sub al. 20h moy dl. al Mov ah, 2 4、 model smal X db 12 code JA Next Mov aL. y NextI M xit o startup MOV AX,ⅹ AND AX. 8000H MOV X 0 V Signl. OFFFFH 6、 model small ack
3、 Again: mov ah, 1 Int 21h Cmp al,60h Jb again Cmp al, 7Bh Ja again Sub al, 20h Mov dl, al Mov ah, 2 Int 21h 4、.model small .stack .data X db 12 Y db 67 Z db ? .code .startup Mov al, X Cmp al , Y JA Next1 Mov al, Y Next1: Mov Z, Al .exit 0 end 5、…. .data X dw -5 Sign1 dw ? .code .startup Mov AX, X AND AX, 8000H JZ Next1 MOV X, 0 Jmp Next2 Next1: MOV Sign1, 0FFFFH Next2: 6、 .model small .stack
data XX DW 1234 Str2 db "Two equalS" Str3 db "No code Mov Cmp ax, YY jz label2 lea dx,str3;全不等 jnz label2 label2. label int 21h 0 7, cmp word ptr[00061, 5 Jz 004F Cmp by Jz0050 8 moy di. offset string2 stringl Moy CX. COUNT Again Mov al, [si] v[di], al Inc di Inc
.data XX DW 1234 YY DW 1235 ZZ DW 4567 Str1 db "Three equal$" Str2 db "Two equal$" Str3 db "No equal$" .code .startup Mov ax, XX Cmp ax, YY Jz labelA mov bx, YY cmp bx, ZZ jz label2 lea dx, str3 ;全不等 jmp label4 labelA: cmp ax, ZZ jnz label2 lea dx, str1 jmp label4 label2: lea dx, str2 label4: mov ah, 9 int 21h .exit 0 end 7、cmp word ptr[0006], 5 Jz 004F Cmp bx , cx Jz 0050 Inc ax 8、mov di, offset STRING2 Mov si, offset string1 Mov cx, COUNT Again: Mov al, [si] Mov [di], al Inc di Inc si
Moy ds. bx Offwith Xor bx bx Xor dx. dx Again Cmp byte ptr[bx], 20h Inc d igain 结果保存在DX stack int 2lh mo bh. al moy bl 80h dI Odh mov ah.2 int 21h mov dl. Oah mov ah, 2 nt 21h again test bh, bl mov dl '1 gmp next labell mov ah, 2 int 21h shr bl
Loop again 9、Mov bx, 0020h Mov ds, bx Mov cx, 0ffffh Xor bx, bx Xor dx, dx Again: Cmp byte ptr[bx], 20h Jnz next1 Inc dx Next1: Loop again ;结果保存在 DX 10、.model small .stack .data .code .startup mov ah, 1 int 21h mov bh, al mov cx, 8 mov bl, 80h mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h again: test bh, bl jz label1 mov dl, '1' jmp next label1: mov dl, '0' next: mov ah,2 int 21h shr bl,1 loop again
it o l1、 model smal array dw12-34,56,-78,78,.5623,56-45,9,-7-82,3,4,5,6,787,88 ARRAYP dw 20 dup(0) arrayn dw 20 dup(o) moy bx offset array moy dl offset ARRay moy Sl arrayn test word ptr[bx], 8000h mov ax, bx mov [si ), ax ADD SL. 2 gmp next labell add di 2 ADD BX. 2 my Data dw 设数据放在此处 WoRdSUM dw cx,100 Mov bx, offset my Data Again
.exit 0 End 11、.model small .stack .data ARRAY dw 12,-34,56,-78,78,56,23,56,-45,9,-7,-8,2,3,4,5,6,7,87,-88 ARRAYP dw 20 dup(0) ARRAYN dw 20 dup(0) .code .startup mov cx, 20 mov bx, offset ARRAY mov DI,offset ARRAYP mov SI,offset ARRAYN again: test word ptr[bx],8000h jz label1 mov ax,[bx] mov [si],ax ADD si,2 jmp next label1: mov ax,[bx] mov [di],ax ADD di, 2 next: ADD BX,2 loop again .exit 0 End 12、 .data myData dw ………;设数据放在此处 WORDSUM dw ? .code .startup Mov cx, 100 Mov bx, offset myData Xor ax, ax Again:
Add ax, [bx Jo labell Moy WordSUM ax moy dx offset sum overflow Moy ah. 9 Int 21h 0
Add ax, [bx] Jo label1 Loop again Mov WORDSUM, ax .exit 0 Label1: Mov dx, offset sum overflow Mov ah, 9 Int 21h .exit 0 end