
谁知道《计算机组成原理与汇编语言程序设计》的这三题怎么做
完成如下程序,实现将0,1,2,3,4,5,6,7,8,9十个数反过来排列:STACKSEGMENTSTACK'STACK'DB100DUP(0)STACKENDSDAT...
完成如下程序,实现将0,1,2,3,4,5,6,7,8,9十个数反过来排列:
STACK SEGMENT STACK 'STACK'
DB 100 DUP(0)
STACK ENDS
DATA SEGMENT PARA 'DATA'
SOUR DB 0,1,2,3,4,5,6,7,8,9
DEST DB 10 DUP(?)
DB '$'
DATA ENDS
CODE SEGMENT PARA 'CODE'
ASSUME CS:CODE
MAIN PROC FAR
START: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV CX,10
MOV SI,
MOV DI,offset DEST
AGAIN: MOV AL,[SI]
MOV [DI],AL
INC DI
LOOP AGAIN
MOV DX,offset DEST
MOV AH,09H
INT 21H
RET
MAIN ENDP
CODE ENDS
END START
上机操作题二:
完成如下程序,实现从十个数中找出最小的数。
DATA SEGMENT
ARY DB 17,5,40,3,67,12,34,78,32,10
MAX DB ?
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET ARY
MOV CX,9
MOV AL,[SI]
LOP: INC SI
CMP AL,[SI]
MOV AL,[SI]
BIGER: LOOP LOP
MOV MAX,AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
上机操作题三:
完成如下程序,实现从键盘输入1显示a,输入2显示b,输入3显示c。
data segment
x db 'abc'
y db ?
data ends
code segment
assume ds:data,cs:code
begin: mov ax,data
mov ds,ax
mov ah,01h
int 21h
xor ah,ah
cmp al,2
jl less
jz equa
mov si,offset x+2
jmp next
less: mov si,offset x
jmp next
equa: mov si,offset x+1
next: mov al,[si]
mov y,al
mov dl,al
mov ah,02h
int 21h
mov ah,4ch
int 21h
code ends
end begin 展开
STACK SEGMENT STACK 'STACK'
DB 100 DUP(0)
STACK ENDS
DATA SEGMENT PARA 'DATA'
SOUR DB 0,1,2,3,4,5,6,7,8,9
DEST DB 10 DUP(?)
DB '$'
DATA ENDS
CODE SEGMENT PARA 'CODE'
ASSUME CS:CODE
MAIN PROC FAR
START: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV CX,10
MOV SI,
MOV DI,offset DEST
AGAIN: MOV AL,[SI]
MOV [DI],AL
INC DI
LOOP AGAIN
MOV DX,offset DEST
MOV AH,09H
INT 21H
RET
MAIN ENDP
CODE ENDS
END START
上机操作题二:
完成如下程序,实现从十个数中找出最小的数。
DATA SEGMENT
ARY DB 17,5,40,3,67,12,34,78,32,10
MAX DB ?
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET ARY
MOV CX,9
MOV AL,[SI]
LOP: INC SI
CMP AL,[SI]
MOV AL,[SI]
BIGER: LOOP LOP
MOV MAX,AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
上机操作题三:
完成如下程序,实现从键盘输入1显示a,输入2显示b,输入3显示c。
data segment
x db 'abc'
y db ?
data ends
code segment
assume ds:data,cs:code
begin: mov ax,data
mov ds,ax
mov ah,01h
int 21h
xor ah,ah
cmp al,2
jl less
jz equa
mov si,offset x+2
jmp next
less: mov si,offset x
jmp next
equa: mov si,offset x+1
next: mov al,[si]
mov y,al
mov dl,al
mov ah,02h
int 21h
mov ah,4ch
int 21h
code ends
end begin 展开
1个回答
展开全部
第一题:
(1)(offset sour)+9
(2)dec si
不知道是不是一空只填一句?如果可以填两句,那么第二个空应该是:
or byte ptr[di],30h
dec si
如果只能填一句,这个题本身就有点问题啦:按上面的方法填上后,数值是倒序了,可是也不能直接用9号功能显示啊,这时显示的是乱码。要想显示9到0这些数码,还要再加上30H呢。
第二题
(1)jbe biger
这个题也很有意思,明明是找最小数嘛,干嘛定义变量叫“MAX”?
第三题
(1)and al,0fh
(1)(offset sour)+9
(2)dec si
不知道是不是一空只填一句?如果可以填两句,那么第二个空应该是:
or byte ptr[di],30h
dec si
如果只能填一句,这个题本身就有点问题啦:按上面的方法填上后,数值是倒序了,可是也不能直接用9号功能显示啊,这时显示的是乱码。要想显示9到0这些数码,还要再加上30H呢。
第二题
(1)jbe biger
这个题也很有意思,明明是找最小数嘛,干嘛定义变量叫“MAX”?
第三题
(1)and al,0fh
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询