汇编语言编程题

2025-03-14 05:29:32
推荐回答(3个)
回答1:

k为首地址的十个字节数中奇数的个数
⑵05H
⑶DSEG
⑷OFFSET BLOCK
⑸AND AL,01H

2、在ADDR单元中存放着数Y的地址,下面程序的功能是把Y中1的个数存入COUNT单元中,试将其填空完整。
DATAREA SEGMENT
ADDR DW NumBER
NUMBER DW Y
COUNT DW ?
DATAREA ENDS
PROGRAM SEGMENT
MAIN PROC FAR
( 1 ASSUME DS:DATAREA,CS:PROGRAM)
START:PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATAREA
MOV DS,AX
( 2 MOV CX,0)
MOV BX,ADDR
MOV AX,[BX]
REPEAT: ( 3 TEST AX,0FFFFH)
JZ EXIT
( 4 JNS SHIFT)
INC CX
SHIFT:( 5 SHL AX,1)
JMP REPEAT
EXIT:MOV COUNT,CX
RET
MAIN ENDP
PROGRAM ENDS
END START

3.编程题。
1.有数据段定义如下,编写完整程序,统计以BUF 为首地址的字节数组中正数(包含0)和负数的个数,分别放在PLUS和MINUS单元中。
DATA SEGMENT
BUF DB -32,25,36,-18,-64,0,-3
COUNT EQU $-BUF
PLUS DB ?
MINUS DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
START:PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET BUF
MOV CX,COUNT
CON:MOV AL,[SI]
CMP AL,0
JGE PLU
INC MINUS
JMP NEXT
PLU:INC PLUS
NEXT:INC SI
LOOP CON
RET
MAIN ENDP
CODE ENDS
END START

回答2:

1可以用逻辑运算逐位相加。2、1是判断是否溢出,溢出就跳到K1。K1肯定是MOV PLW,AX

回答3:

(1)
JEK1或者JZK1
(2)
MOV PLW,AX