微型计算机原理答案第四章,微机原理作业与答案第四章

41528d3028836879cd698677c3999917.gif微机原理作业与答案第四章

第四章 汇编语言程序设计 4-2 下列程序执行后,寄存器AX,BX,CX的内容分别是多 少?ORG 0202H DA_WORD DW 20H MOV AX,DA_WORD ;(AX)=0020H MOV BX,OFFSET DA_WORD ;(BX)=0202H (BX)=0,这 是书中的参考答案 MOV CL,BYTE PTR DA_WORD ;(CL)=20H(因PTR,则字的 第一字节) MOV CH,TYPE DA_WORD ;(CH)=2(变量类型数值);(CX)=0220H 4-4 试编制一程序(不是程序段),把CHAR1中各小写字母 分别转换为对应的大写字母,并存放在CHAR2开始的单元中 DDD0 SEGMENT CHAR1 DB ‘abcdef’ N EQU $-CHAR1;变量必须先定义后使用,而不能 相反 CHAR2 DB N DUP(0);不能把此句与上一句对调 DDD0 ENDS STACK SEGMENT STACKDB 200 DUP(0) STACK ENDS ;P126(代码段和堆栈段是不可少的) CSEG SEGMENT ASSUME CS:CSEG,DS:DDD0,SS:STACK START: MOV AX,DDD0 MOV DS,AX ;MOV DX,AX???MOV ES,AX ;只要SI,DI都用 MOV SI,0 ;LEA SI,CHAR1 MOV DI,0 ;LEA DI,CHAR2 MOV CX,N AGAIN: MOV AL,CHAR1[SI] ; MOV AL,[SI] SUB AL,20H MOV CHAR2[DI],AL ; MOV [DI],AL MOV DL,AL ;不是必须的,但做实验是有用的。 MOV AH,2 INT21H INC SI INC DI LOOP AGAIN MOV AH,4CH INT 21H ;不是必须的 CSEG ENDS END START 第二种方法: DDD0 SEGMENT CHAR1 DB ‘abcdef’ N EQU $-CHAR1 CHAR2 DB N DUP(0) DDD0 ENDS STACK SEGMENT STACKDB 200 DUP(0) STACK ENDS ;P126(代码段和堆栈段是不可少的) CSEG SEGMENT ASSUME CS:CSEG,DS:DDD0,SS:STACK START: MOV AX,DDD0 MOV DS,AX MOV ES,AX LEA SI,CHAR1 LEA DI,CHAR2 MOV CX,N CLD ;不写(隐含)也是0(递增)但不能STDAGAIN: LODSB ;执行一次,隐含修改SI SUB AL,32 stosb ;MOV [DI],AL;执行一次, 隐含修改DI nop ;INC DI LOOP AGAIN ;LOOP指令只修改CX,不管SI,DI MOV AH,4CH INT 21H ;不是必须的 CSEG ENDS END START 4-6在BUF地址处起,存放有100个字节的字符串,设其中 有一个以上的“A”字符,编程查找出第一个“A”字符相对 起始地址的距离,并将其存入LEN单元。 方法1 DDD0 SEGMENT BUF DB‘qasdA%^9F26HsdfhA$#12345678’ DB ‘DFGH234546JII2334JI5467OPPAVG’ DB ‘ASDFG45667RTY’; 必须写实际的 LEN DW ?;为变量LEN保留一个字 DDD0 ENDS STACK SEGMENT STACKDB 200 DUP(0) STACK ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DDD0,SS:STACK START: MOV AX,DDD0 MOV DS,AX MOV ES,AX MOV CX,100LEA DI,BUF ;MOV DI,OFFSET BUFMOV AL,‘A’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值