在线等,急!汇编语言编程题!

2024-12-19 20:51:10
推荐回答(1个)
回答1:

;储存在DATA1中的200个无符号数,前100个数为20H,后100个数为10H,
;编写一个完整的汇编语言源程序,将其奇数个数字乘2,偶数个数字除2,
;逆序放在以DATA2为起始地址的缓冲区中。

DATA SEGMENT
DATA1 DB 100 DUP(20H)
DB 100 DUP(10H)
DATA2 DB 200 DUP(?)
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV ES, AX
;---------------
LEA SI, DATA1
LEA DI, DATA2
ADD DI, 199

MOV CX, 200
LOP:
MOV AL, [SI]
TEST AL, 01H
JNZ QI
SHR AL, 1 ;是偶数,就右移一位,即除以2
JMP NEXT
QI:
SHL AL, 1 ;是奇数,就左移一位,即乘以2
NEXT:
MOV [DI], AL
INC SI
DEC DI
LOOP LOP
;---------------
MOV AH, 4CH
INT 21H
CODE ENDS
END START

以前回答过了,但是不显示。