微机原理第四章_第1页
微机原理第四章_第2页
微机原理第四章_第3页
微机原理第四章_第4页
微机原理第四章_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章 课后习题4.3 什么是指示性语句,它和指令有什么区别指示性语言是指与CPU的指令直接对应的助记符而指令是有汇编开发系统识别和处理的助记符前者是不被汇编开发系统处理的助记符.4.4 画出下列语句的数据在存储器中的存储情况ARRAYB DB 12,34H,ABCD,2, DUP(?,2)ARRAYB DW 1234H,AB,CD,?,2 DUP(?,2)地址数据地址数据ARRAYBOCHARRAYB34H34H12H41H42H42H41H43H44H44H43H02H?02H02H00H?00H02H00H?00H02H00H4.5 求DLENGTH的值是多少DATA1 DW&

2、#160;? DATA2 DB 32DUP(?) DATA3 DD ? DLENGTH EQU DATA1解:DLENGTH=38=26H4.6 在某程序中需要为一个变量BUF预留500个字节的存储空间,请写出相应的指令,如果要预留500个字的存储空间呢?解:DATA1 DB 500 DUP(?)ADTA2 DW 500 DUP(?)4.7程序定义如下BUFFERB DB  ABCDEF RESULT  DB  ?&

3、#160;BUFFERW DW  30 DUP(?)写出运行结果:MOV AX, TYPE RESULT   AX=1 MOV BX, TYPE BUFFERW   BX=2 MOV CX, LENGTH BUFFERB  CX=1 MOV DX, LENGTH BUFFERW  DX=30 MOV

4、 AX, SIZE RESULT    AX=1 MOV BX, SIZE BUFFERW   BX=604.9LENG表示符号 值等于24.11 设BX=1103H,则执行下列指令后AX和CX各为多少?若BX=03H,则结果又如何? MOV AX, BX AND 0FFH MOV CX, BX EQ 1103H解:BX=1103H AX

5、=0003H,CX=0FFFFH BX=03H AX=0003H,CX=0 4.12MOV AX,XSBB A,YMOV BX,10IDIV BXMOVBX,4MUL BXMOV Z,AX4.14XOR BX, BX  MOV CX,10 LOP: MOV AH, 01H    INT  21H   SUB  AL, 30H   

6、;MOV DL, AL   MOV AX, BX   ADD  AL, DL   AAA   MOV BX, AX   LOOP LOP4.174. 13. 设A,B是长度为10的字节数组,用串操作指令编写程序实现AB两数组内容的相互交换,试完善本程序。DATASEGMENTADB1,2,3,4,5,6,7,8,9,0AHDRG OO10HBDB

7、0AH,9,8,7,6,5,4,3,2,1DATAENDSLEA SI,ALEA DO,BMOV CX,10LOP:LODSBXCHG AL,DI DEC DISTOSB INC DILOOP LOP解:XCHG SI, DIXCHG SI, D4.18将内存中某数据块的正数和负数分开,并分别将这些正数和负数送同一数据段的两个缓冲区中,并在屏幕上显示正数和负数的个数。DATA SEGMENTBUF DB 12,15,-2,3,-7,-8,19,-25N=$-BUFBUF1 DB N DUP(?) ;存放正数BUF2 DB N DUP(?) ;存放负数DATA ENDSCODE SEGMENTA

8、SSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA BX,BUF ;BX指向BUFLEA SI,BUF1 ;SI指向存放正数的缓冲区BUF1LEA DI,BUF2 ;DI指向存放负数的缓冲区BUF2MOV CX,N ;循环N次MOV DX,0 ;DH表示负数的个数,DL表示正数的个数,都清零 CYCLE: MOV AL,BX ;将BX指向的数送给ALCMP AL,0 ;比较AL与0的大小JG GREAT ;AL>0,则转移至GREATMOV DI,AL ;AL<=0,将AL存入负数的数组INC DH ;负数的个数加1INC DI

9、;DI指向下一个负数JMP NEXTGREAT: MOV SI,AL ;AL>0,将AL存入正数的数组INC DL ;正数的个数加1INC SI ;SI指向下一个负数NEXT: INC BX ;判断下一个数LOOP CYCLEADD DL,30H ;将正数的个数变成字符输出MOV AH,2INT 21HADD DH,30H ;将负数的个数变成字符输出MOV DL,DHMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START4.20现有一子程序:SUB1PROCTEST AL,80HJE PLUSTEST BL,80HJNE EXITOJMP X

10、CHANGEPLUS:TEST BL,80HJE EITOXCHANGE:XCHG AL,BLEWITO:RETSUB1ENDP试回答:(1) 子程序的功能是什么?(2) 如调用子程序前AL9AH,BL77H,那么返回主程序时,AL?BL?解:(1) 测试AL, BL两数的符号,如为同号直接返回,如为异号,则AL与BL交换(2) AL=77H, BL=9AH4.21作用1、DOS键盘功能调用2、DOS显示功能调用3、DOS打印功能4、DOS串行口通信功能调用区别 bios是主板预装好的input、output系统,而dos是需要安装才能使用操作系统。用int条用中断以后可以通过不同的系统达到不

11、同的目的和效果。其中int 1 -20 是bios中断,int21 专门用于dos中断4.24ATA SEGMENT NUMBER DB ?;存放统计数据,在程序退出以前可以在此看到统计数据,若对程序才算对 STR1 DB 'ASDAASZXCFGRSAAXADRRAT$'可以自己随便定义,注意以$结尾DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA;给数据段赋值 MOV DS,AX LEA SI,STR1;字符串首地址 MOV BL,0;存放统计个数的寄存器赋初值LOOP1: MOV CL,SI;取数据 INC SI CMP CL,'$'看是否

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论