汇编语言期末复习总结(完整版)
更新时间:2024-03-06 22:33:01 阅读量: 综合文库 文档下载
- 汇编语言总结心得体会推荐度:
- 相关推荐
〔习题1.24〕说明下列指令中源操作数的寻址方式?如果BX=2000H,DI=40H,给出DX的值或有效地址EA的值。
(1) mov dx,[1234h] 直接寻址,EA=1234H (3) mov dx,bx 寄存器寻址,DX=2000H
(6) mov dx,[bx+di] 基址变址寻址,EA=2040H
第2章 8086的指令系统
〔习题2.1〕已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12 34 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行完后AX寄存器的内容。
(1) mov ax,1200h AX=1200H (2) mov ax,bx AX=0100H
(3) mov ax,[1200h] AX=4C2AH ;偏移地址=1200h (4) mov ax,[bx] AX=3412H ;偏移地址=bx=0100h
(5) mov ax,[bx+1100h] AX=4C2AH ;偏移地址=bx+1100h=1200h
(6) mov ax,[bx+si] AX=7856H ;偏移地址=bx+si=0100h+0002h=0102h (7) mov ax,[bx][si+1100h] AX=65B7H ;偏移地址bx+si+1100h=0100h+0002h+1100h=1202h
〔习题2.2〕指出下列指令的错误
(1) mov cx,dl 两操作数类型不匹配
(2) mov ip,ax IP指令指针禁止用户访问
(3) mov es,1234h 立即数不允许传给段寄存器(DS、CS、SS、ES) (4) mov es,ds 段寄存器之间不允许传送 (5) mov al,300 两操作数类型不匹配 (6) mov [sp],ax 目的操作数应为[ SI ] (7) mov ax,bx+di 源操作数应为 [BX+DI] (8) mov 20h,ah 立即数不能作目的操作数
〔习题2.8〕请分别用一条汇编语言指令完成如下功能:
(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。 (2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。
(3)用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。 (4)用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。
(5)把数0A0H与AL寄存器的内容相加,并把结果送回AL中。 (1)ADD DX,BX
(2)ADD AL,byte ptr [BX+SI] (3)ADD [BX+0B2H],CX
(4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H
〔习题2.10〕指出下列指令的错误:
(1) xchg [si],30h xchg的操作数不能是立即数 (2) pop cs 不应对CS直接赋值
(3) sub [si],[di] 两个操作数不能都是存储单元 (4) push ah 堆栈的操作数不能是字节变量 (5) adc ax,ds adc的操作数不能是段寄存器 (6) add [si],80h 没有确定是字节还是字操作 (7) shl [si] ,1 没有指定指向数据的大小 (8) ror dx, al al应该换成cl
〔习题2.22〕假设AX和SI存放的是有符号数,DX和DI存放的是无符号数,请用比较指令和条件转移指令实现以下判断: (1)若DX > DI,转到above执行 cmp dx,di
ja above ;=jnbe above (2)若AX > SI,转到greater执行 cmp ax,si
jg greater ;=jnle greater (3)若CX = 0,转到zero执行 cmp cx,0
jz zero ;= jcxz zero
〔习题2.25〕对下面要求,分别给出3种方法,每种方法只用一条指令。 (1)使CF=0 (2)使AX=0 (1)解答:
clc(清零)
and ax,ax(逻辑操作不会进位) or ax,ax (2)解答: xor ax,ax and ax,0 mov ax,0
〔习题3.7〕假设myword是一个字变量,mybyte1和mybyte2是两个字节变量,指出下列语句中的错误原因。
(1) mov byte ptr [bx],1000 1000超出了一个字节范围
(2) mov bx,offset myword[si] 寄存器的值只有程序执行时才能确定,而offset是汇编过程计算的偏移地址,故无法确定,改为lea bx,myword[si]
(3) cmp mybyte1,mybyte2 两个都是存储单元,指令不允许
(4) mov al,mybyte1+mybyte2 变量值只有执行时才确定,汇编过程不能计算 (5) sub al,myword 字节量AL与字变量myword,类型不匹配
(6) jnz myword Jnz指令只有相对寻址方式,不支持间接寻址方式 〔〔习题3.10〕画图说明下列语句分配的存储空间及初始化的数据值: (1) byte_var DB ’ABC’,10,10h,’EF’,3 DUP(-1,?,3 DUP(4)) (2) word_var DW 10h,-5,’EF’,3 DUP(?)
(1)从低地址开始,依次是(十六进制表达):
41 42 43 0a 10 45 46 ff - 04 04 04 ff - 04 04 04 ff - 04 04 04 (2)从低地址开始,依次是(十六进制表达): 10 00 FB FF 46 45 - - - - - -
〔习题3.11〕请设置一个数据段mydataseg,按照如下要求定义变量: (1) my1b为字符串变量:Personal Computer (2) my2b为用十进制数表示的字节变量:20 (4) my4b为用二进制数表示的字节变量:20 (5) my5w为20个未赋值的字变量 (6) my6c为100的常量
(7) my7c表示字符串:Personal Computer mydataseg segment
my1b db ‘Personal Computer’ my2b db 20
my3b db 14h ;20h my4b db 00010100b my5w dw 20 dup(?)
my6c equ 100 ;my6c = 100 my7c equ
第4章 基本汇编语言程序设计
〔习题4.6〕编制一个程序,把变量bufX和bufY中较大者存入bufZ;若两者相等,则把其中之一存入bufZ中。假设变量存放的是8位无符号数。 .model small .stack 256 .data bufx db ? bufY db ? bufz db ? .code .startup
mov al, bufX mov bl, bufY cmp al,bl ja next
mov bufZ, bl jmp done
next: mov bufZ, al done: .exit 0 End
大题
1.显示HelloWorld字符串。 .model small ;定义程序的存储模型,一般程序采用小型模型 .stack ;堆栈段 .data ;数据段 string db 'Hello World!',0dh,0ah,'$' ;定义需要显示的字符串 .code ;代码段 .startup ;程序的起始点,建立DS、SS内容 mov dx,offset string ;指定字符串在数据段的偏移地址 mov ah,9 int 21h ;调用功能调用显示信息 .exit 0 ;程序结束点,返回DOS end ;汇编结束 2.COM程序实现任意键后响铃 .model tiny .code .startup mov dx,offset string mov ah,9 ;9号调用输出字符串 int 21h mov ah,01h ;1号调用,从stdin读取字符 int 21h mov ah,02h mov dl,07h int 21h ;2号调用,向stdout输出字符(07H-\\a响铃) .exit 0 string db 'Press any key to continue!$' ;数据安排在不与代码冲突的地方 end 3.设有一个64位的数据,要求将它算术左移8位(从高字节开始,从右向左左移8位) .model stmall .stack .data qvar dq 1234567887654321h ;dq表示4个字4*16 = 64bytes .code .startup mov cx,7 mov si,6 ;1 again: mov al,byte ptr qvar[si] mov byte ptr qvar[si+1],al ;si-1 desc si ;inc si loop again mov byte ptr qvar[si + 1],0 ;si 4.计算1~100的和,将结果放入SUM中 .model stmall .stack .data sum dw ? .code .startup xor ax,ax mov cx,100 again: add ax,cx loop again mov sum,ax .exit 0 end 5.把一个字符串中所有的大小改小写,该字符串以’0’结尾。 .model stmall .stack .data string db 'HELLO world!',0 .code .startup mov bx,offset string again: mov al,[bx] or al,al jz done cmp al,'A' jb next cmp al,'Z' ja next or al,20h mov [bx],al next:inc bx jmp again done: .exit 0 end 6.编制一个程序,把变量bufX和bufY中较大者存入bufZ;若两者相等。则将其中之一存入bufZ。假设变量存放的是8位无符号数。 .model small .stack .data bufx db ? bufY db ? bufz db ? .code .startup mov al, bufX mov bl, bufY cmp al,bl ja next mov bufZ, bl jmp done next: mov bufZ, al done: .exit 0 end
正在阅读:
汇编语言期末复习总结(完整版)03-06
xx市自然资源局2021年工作总结及2022年工作打算08-03
会走路的杯子作文500字06-19
四有好教师案例05-22
云南省住房和城乡建设厅关于加强建设工程电子图文档案管理的通知(云建办717号)10-15
毕业论文的格式12-10
41030743-臧淑英报告正文07-23
正能量励志故事及启示04-17
终极格斗冠军攻略 EA SPORTS UFC出拳技巧详解08-20
大堂经理岗位职责02-25
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 整版
- 汇编语言
- 期末
- 复习
- 总结
- 旅游安全应急预案和演练台账
- 企业对大学生素质能力要求的调查与思考
- 2015年度欧科佳(上海)汽车电子设备有限公司销售收入与资产数据
- 金属离子与蛋白质的相互作用
- 《我国的人口和民族》专题检测 解析版
- 高三物理选择题专项训练(20)
- C++实习报告
- 人力资源学习心得体会
- 上海闸北区大宁路街道325街坊地块住宅项目外脚手架及悬挑脚手架
- 专业考察论文格式
- 行政管理自考《社会研究方法》复习资料
- 初中班主任有效管理班级的方法
- 建筑公司经营模式探索与实践及创新
- 南方电网公司电网工程结算审核及总结算编制指导书
- 烘干塔烘干的粮食有皮是怎么回事,什么原因造成的玉米烘干塔炉温
- 分拣实训报告
- 义务教育语文课程标准(2018年版)学习心得体会 精品
- 本科毕业设计选题审批表
- 材料科学与工程基本概念及其应掌握的内容
- 高中数学《函数的基本性质》教案1 新人教A版必修1