汇编语言(第三版)实验1-17

本文详细介绍了汇编语言的多个实验,包括数据处理、内存操作、屏幕显示、中断处理等方面,通过实验加深了对汇编语言基本概念和操作的理解。
摘要由CSDN通过智能技术生成
实验1
1.略
2.
1、略
2、注意16进制转换10进制
3、无法改变,应为ROM具有‘只读’属性
4、B8100H单元为彩色字符显存,在此单元内写入数据直接会显示在显示屏上


实验2
1、略
2、
1.
AX= C0EAH
AX= C0FCH
BX= 30F0H
BX= 6021H
SP= 00FE 220FE C0FCH
SP= 00FC 220FC 6021H
SP= 00FE 6021H
SP= 0100 C0FCH
SP= 00FE 220FE 30F0H
SP= 00FC 220FC 2F31H
2.
解:t命令为单步中断,在执行的时候CPU会保护现场,即按顺序把标志寄存器、CS、IP的值和操作数据放入栈中,此题是关于后面章节的中断问题。


实验3
1、略
2、
AX= 2000H
SS= 2000H
SP= 0
SP= AH
AX= 0
SP= CH
BX= 0
SP= EH
SP= CH
SP= AH
SP= CH
SP= EH
3、略


实验4
1、
ASSUME CS:CODE
CODE SEGMENT
    MOV AX,0020H
MOV DS,AX
MOV BX,0
MOV AL,0
MOV CX,64
S: MOV DS:[BX],AL
INC BX
INC AL
LOOP S
    MOV AX,4C00H
INT 21H
CODE ENDS
END
2、
ASSUME CS:CODE
CODE SEGMENT
    MOV AX,0020H
MOV DS,AX
MOV BX,0
MOV CX,64
S: MOV DS:[BX],BL
INC BX
LOOP S
    MOV AX,4C00H
INT 21H
CODE ENDS
END
3、
MOV AX,CS
MOV CX,17H


实验5
1、
1.不变
2.0772H、0771H、0770H
3.X-2、X-1


2、
1.不变
2.0072H、0771H、0770H
3.X-2、X-1
4.(N/16+1)*16


3、
1.不变
2.0072H、0771H、0770H
3.X-2、X-1


4、
第3能正确执行,如果不指名程序入口,编译器自动默认整个代码的第一条指令为程序的入口


5、
ASSUME CS:CODE


A SEGMENT
  DB 1,2,3,4,5,6,7,8
A ENDS


B SEGMENT
  DB 1,2,3,4,5,6,7,8  
B ENDS


C SEGMENT  
  DB 0,0,0,0,0,0,0,0
C ENDS


CODE SEGMENT  
  START: MOV AX,A
         MOV DS,AX
MOV BX,0
MOV AL,0
MOV CX,8
S: MOV AL,[BX]
ADD AL,[16+BX]
MOV [32+BX],AL
         INC BX
LOOP S
 
         MOV AX,4C00H
INT 21H
 
CODE ENDS
END START 


6、
ASSUME CS:CODE


A SEGMENT
   DW 1,2,3,4,5,6,7,8,9,0AH,0BH,0CH,0DH,0EH,0FH,0FFH
A ENDS


B SEGMENT
   DW 0,0,0,0,0,0,0,0
B ENDS


CODE SEGMENT


   START:MOV AX,A
         MOV DS,AX
MOV BX,0
MOV CX,8
S: PUSH [BX]
ADD BX,2
LOOP S
          
MOV BX,0
         MOV CX,8
    S1:  POP [20H+BX]
         ADD BX,2
         LOOP S1


         MOV AX,4C00H
         INT 21H  


CODE ENDS
END START  


实验6
1、略
2、 
ASSUME CS:CODE,SS:STACK,DS:DATA
STACK SEGMENT
    DW 0,0,0,0,0,0,0,0
STACK ENDS


DATA SEGMENT
    DB '1. display      '
    DB '2. brows        '
    DB '3. replace      '
DB '4. modify       '
DATA ENDS


CODE SEGMENT
 
    START: MOV AX,STACK
      MOV SS,AX
  MOV SP,16
  
  MOV AX,DATA
  MOV DS,AX
  MOV BX,0
  MOV SI,3
  
           MOV CX,4
 S:        MOV AL,[BX][SI]
  AND AL,11011111B
  MOV [BX][SI],AL
  CMP SI,6              ;CMP比较指令,此处使用了后面学到的知识点
  JE OK                 ;相等就跳到标号处
  INC SI
  JMP S
OK:   MOV SI,3
      ADD BX,16
           LOOP S
           
           MOV AX,4C00H
  INT 21H
CODE ENDS


END START


实验7
ASSUME CS:CODE,DS:DATA,SS:STACK
DATA SEGMENT
    DB '1975','1976','1977','1978','1979','1980','1981','1982','1983'
DB '1984','1985','1986','1987','1988','1989','1990','1991','1992'
DB '1993','1994','1995'
;以上是表上21年的21个字符串

DD 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
DD 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
;以上是表上21年公司总收入的21个dword型数据

DW 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
DW 11542,14430,15257,17800
;以上是表上21年公司雇佣人数的21个word数据
DATA ENDS


TABLE SEGMENT
    DB 21 DUP('YEAR SUMM NE ?? ')
TABLE ENDS


STACK SEGMENT
    DB 128 DUP(0)
STACK ENDS

CODE SEGMENT
   START:MOV AX,STACK
         MOV SS,AX
MOV SP,128
         MOV AX,DATA
         MOV DS,AX
MOV AX,TABLE
MOV ES,AX
MOV BX,0
MOV BP,0
MOV SI,0
MOV CX,21
S: PUSH CX
MOV AX,WORD PTR DS:[SI]
    MOV WORD PTR ES:[BX],AX
         MOV AX,WORD PTR DS:[SI+2]
MOV WORD PTR ES:[BX+2],AX
         
MOV AX,WORD PTR DS:[SI+84]
MOV WORD PTR ES:[BX+5],AX
MOV DX,WORD PTR DS:[SI+86]
MOV WORD PTR ES:[BX+7],DX
 
MOV CX,WORD PTR DS:[BP+168]
MOV WORD PTR ES:[BX+10],CX
 
         DIV CX
MOV WORD PTR ES:[BX+13],AX
 
         AD
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值