汇编语言编程题,总共三道题。求大神解答,财富值不够可以商量。我qq874746173
1个回答
展开全部
第20.1题:
CODE SEGMENT
ASSUME CS:CODE
ORG 100H
START: JMP BEGIN
SOURCE DB 0AAH,74H,0EEH,0A8H,43H,0EEH,0AAH,31H,0EEH,0AAH,10H,0EEH
COUNT EQU $-SOURCE
RESULT DB COUNT/3 DUP(?)
BEGIN:
PUSH CS
POP DS
PUSH CS
POP ES
LEA SI,SOURCE
LEA DI,RESULT
MOV CX,COUNT
SUB CX,2
@0:
LODSB
CMP AL,0AAH
JNE @2
CMP BYTE PTR[SI+1],0EEH
JNE @2
MOV AL,[SI]
STOSB
; add si,2
@2:
LOOP @0
MOV AH,4CH
INT 21H
CODE ENDS
END START
第20.2题:
CODE SEGMENT
ASSUME CS:CODE
ORG 100H
START: JMP BEGIN
SOURCE DB 'abc',13,10,'123',13,10,'+-*',13,10,00
RESULT DB 100 DUP(?)
BEGIN: PUSH CS
POP DS
PUSH CS
POP ES
LEA SI,SOURCE
LEA DI,RESULT
@0:
LODSW ; 装入字
DEC SI ; si减一,相当于装入字节
CMP AX,0A0DH ; 比较换行回车
JNE @1 ; 不等于转 @1
INC SI ; 等于时 si加一跳过 0AH
STOSB ; 传送 al
JMP @0 ; 转循环开始
@1:
CMP AL,0 ; al 和 00 比较
JE @2 ; 等于 转 @2
STOSB ; 不等于时 传送al
JMP @0 ; 转循环开始
@2:
STOSB ; 传送 00
MOV AH,4CH
INT 21H
CODE ENDS
END START
第20.3题:
code segment
assume cs:code
org 100h
start:
jmp bbb
result db 100 dup(?)
count dw 0
bbb: push cs
pop ds
push cs
pop es
mov word ptr count,0
mov cx,101
lea di,result
inc di
mov si,100
mlp:
mov ax,si
call f
cmp ax,1
jne @1
inc word ptr count
mov ax,si
stosb
@1:
inc si
loop mlp
mov ax,count
mov result[0],al
; call writeint
mov ah,4ch
int 21h
; 要判断的数放入ax中
; ax返回1时表示是素数
; ax返回0时表示是合数
f proc near
jmp f1
x dw ?
x2 dw ?
f1: mov [x],ax
shr ax,1
mov [x2],ax
mov bx,2
flp: mov dx,0
mov ax,[x]
div bx
cmp dx,0
je f2
inc bx
cmp bx,[x2]
jle flp
mov ax,1
ret
f2: mov ax,0
ret
f endp
code ends
end start
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询