汇编
MOSkami
学生
展开
-
【计算机组成原理】关于ALU在SUB命令时,CF的判断
19.减法指令 “sub R1, R2, R3”的功能为 “(R1)-( R2)→ R3 ”,该指令执行后将生成进位 /借位标志 CF 和溢出标志 OF。若( R1)= FFFF FFFFH ,(R2) = FFFF FFF0H ,则该减法指令执行后, CF 与 OF 分别为(A)A. CF=0, OF=0 B. CF=1, OF=0C. CF=0, OF=1 D. CF=1, OF=1在加法运算时,CF=C⊕0,减法运算时CF=C⊕1,加法器的结构如下图所示,在获取到命令为减法时,多路选择器原创 2020-09-24 00:49:50 · 9006 阅读 · 2 评论 -
【学习笔记】汇编:关于80x86CPU显存的规则
80X86CPU显存存放在B800H:0000-B800H:(160D*25D×2D)即B800H:1F40H之间遵循着偶数位为 ASCII码 奇数位为 颜色代码的规律 即每两个字节为一个像素X轴按数学原则(0-159)Y轴与数学原则相反(0-24)其中 颜色码又遵循 前四位为底色 后四位为字体色 且都是以ARGB的规律排列 (0000 0000B)以下指令的作用是把welcome to masm...原创 2018-02-23 21:25:35 · 719 阅读 · 0 评论 -
【学习笔记】汇编:关于DEBUG工具使用的时候的一个注意事项
在学习汇编的时候发现一个简单的代码出现了一个奇怪的问题询问过后发现了DEBUG工具的一个小注意事项(或者说是没用的知识点)ASSUME SS:STACKS,CS:CODES,DS:a,ES:ba SEGMENT ONE dw 01h,02h,03h,04h,05h,06h,07h,08ha ENDSb SEGMENT TWO dw 01h,02h,03h,04h,05h,06h...原创 2018-02-23 21:17:54 · 685 阅读 · 0 评论 -
【学习笔记】汇编:关于JMP等转移指令指令的注意事项
汇编中所有转移指令并非记录所指向的IP的值,而是记录所指向IP与转移指令的下一条指令的IP直接的差(可正可负)如: JMP S MOV AX,BXS: MOV AX,BX这样一条指令 CPU会将JMP S翻译为EB02H,其中EB即JMP本身,而02H即 转移指令与所转移地址直接的差以下这个例子可以充分解释这两者的区别以及注意的原因ASSUME CS:CODES,DS...原创 2018-02-23 21:04:22 · 636 阅读 · 0 评论 -
【学习笔记】汇编学习时 遇到的一道难题,且最后并没有解出来
该题需要把 21个 年份year 收入sume 公司人数ne 以及平均收入?? 存放至TABLE段的 'YEAR SUME NE ?? '中 对应存储不允许使用变量命名(话说看上去这么简单的题汇编做起来怎么就这么难呢)最终钻研了一小时得到这么个程序 最后有一点小瑕疵 没能将SUME NE ??这三个段从 16进制转化成可读的ASCII码(大失败)DATAS SEGMENT db '1975...原创 2018-02-21 21:53:26 · 235 阅读 · 0 评论 -
【学习笔记】汇编:自己模拟内中断函数设计
由于内中断(int)事实上是调用预先存在内存中的函数,所以我们可以覆盖掉原函数,自己完成内中断函数的设计DATAS SEGMENT ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT db 128 dup(0)STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:...原创 2018-03-01 02:01:41 · 362 阅读 · 0 评论 -
【学习笔记】汇编:关于内中断的规则
内中断 是发生了需要CPU立即去处理的信息有以下情况1、除法溢出2、单步执行3、执行INTO指令4、执行INT指令这里以INT指令为例,当发生内中断时,CS:IP会指向所需执行的程序的入口若使用INT X那么会遵循(中断向量表)IP = (word ptr 0:X*4) CS =(word ptr 0:X*4+2) 规则注意这里并非获取的地址,而是获取的指向地址的值如使用INT 0H那么就会让CS...原创 2018-02-26 21:11:20 · 283 阅读 · 0 评论 -
【学习笔记】汇编:关于CLD以及DF的用法,还有一点REP的使用
DF direction Flag 方向标志位作用是表示DI 以及 SI这两个自增(减)的偏移地址寄存器的自增(减)方向当DF为1时,DI与SI自增,当DF为0时,DI与SI自减CLD的作用就是更改DF的值,取反与REP相结合就可以做到方便快捷的循环取值DATAS SEGMENT ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码...原创 2018-02-26 20:06:53 · 3420 阅读 · 1 评论 -
【学习笔记】汇编:关于CMP的使用实例
CMP是进行(假的)减法计算后,不改变寄存器中的值,仅改变标志位的运算操作数根据运算结果,可以与JZ JA JB JNA JNB等指令连用JZ是ZF=1时跳转 即AX-BX=0JA是ZF=1且CF=0时跳转 即AX-BX>0JB是CF=1时跳转 即AX-BX<0JNA是JZ与JB的联用 即AX-BX...原创 2018-02-26 17:57:11 · 3075 阅读 · 0 评论 -
【学习笔记】汇编:关于几个标志位的注意点
在学习的时候发现标志位很容易搞的很乱,简直难受,特记下来这其中的注意事项所有标志位的注意点:1、所有的标志位只有在运算的时候才会发生改变,即MOV PUSH POP等移动指令都不影响标志位2、所有标志位的改变都是根据运算的位数来计算的,使用8位寄存器时只看8位寄存器结果,使用16位寄存器时只看16位寄存器结果CF Carry Flag 进位标志符,这个是最简单的:1、CF是进行无符号数运算,即00...原创 2018-02-26 16:51:19 · 757 阅读 · 0 评论