几道汇编题目,高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/03 16:39:16
第一道:
DESG SEGMENT
TAB DW 01,22,33,44,55
NUM DW 3
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX
MOV CX,TAB (CX=?H)
MOV BX,OFFSET TAB
ADD BX,NUM (BX=?H)
LP2:DEC BX (BX=?H)
MOV AX,[BX+2] (AX=?H,[BX+2]是首地址+2也就是第三个元素的值吗)
LOOP LP2
PPP:MOV AX,4C00H
INT 21H

该程序执行到PPP处:AX=?H BX=?H
第二道:
DSEG SEGMENT
BUFFER DB 'I AM A DOCTOR','$'
ADDR DB 20 DUP(?)
NUM DB 111,222,133,88,01,0,1,2,138
DISPP DW 2
DSEG ENDS
(1)执行下列指令后:
LEA BX,NUM
ADD BX,DISPP (BX=?H)
MOV AX WORD PTR[BX]
AX=?H BX=?H
(2)执行下列指令后:
XOR BX,BX
MOV AX,[DISPP]
MOV SI,OFFSET NUM
ADD BX,WORD PTR [SI]
AX=?H BX=?H

第一道:
DESG SEGMENT
TAB DW 01,22,33,44,55
NUM DW 3
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX
MOV CX,TAB (CX=0001H)
MOV BX,OFFSET TAB (BX=0000H)
ADD BX,NUM (BX=0003H)
LP2:DEC BX (BX=0002H)
MOV AX,[BX+2] (AX=0021H,[BX+2]是首地址+2也就是第三个元素的值)
LOOP LP2
PPP:MOV AX,4C00H
INT 21H

该程序执行到PPP处:AX=0021H BX=0002H
; -----------------------------------------
第二道:
DSEG SEGMENT
BUFFER DB 'I AM A DOCTOR','$'
ADDR DB 20 DUP(?)
NUM DB 111,222,133,88,01,0,1,2,138
DISPP DW 2
DSEG ENDS
(1)执行下列指令后:
LEA BX,NUM ;BUFFER占14个字节,ADDR占20个字节,所以,BX=0022H
ADD BX,DISPP ;BX=0022H+0002H=0024H
MOV AX,WORD PTR[BX] ;WORD PTR[0024H]=133,88
AX=5885H(133=85H,88=58H,低字节在前,高字节在后)