汇编语言
Damon Wang
Hello CSDN!
展开
-
汇编语言题库总结及题目分析
一:选择题:1 . PC机的最小信息单位是( )。(电子计算机的最小信息单位是bit(比特))A、bit B、 字节 C、 字长 D、 字正确答案: A2.一个字单元可以存储( )个bit。(一个字节:即8个二进制位)A、 1 B、 8 C、16 D、 32正确答案: C3.一个CPU的寻址能力是8KB,那么它的地址总线的宽度为( )位。(8KB = 23 * 1024(210)即:213)寻址能力就是由地址总线的宽度决定。A、 8 B、 3 C、 12 D、13正确原创 2021-01-15 00:07:17 · 16368 阅读 · 10 评论 -
汇编语言中寻址方式[bx + idata]
[bx + idata]含义: 用于灵活的表示内存单元,[bx + idata] 的方式为高级语言实现数组提供了遍历机制。数学化描述 :(ax) = ((da)*16 + (bx) + 200)物理逻辑:功能:使用[bx+idata]处理字符串大小写转换。知识引入: and(与) 和 or(或) 指令原始方式: mov ax,datasg mov ds,ax mov bx,0 mov cx,5 s:mov al,[bx] and al,11011111b mov .原创 2021-01-14 23:58:23 · 842 阅读 · 0 评论 -
汇编语言将数据、代码、栈放入不同段基础
Code内部逻辑:Start初始化各段寄存器入栈出栈物理逻辑:代码实现:assume cs:code, ds:data, ss:stack; // 代码段cs、数据段ds、栈段ssdata segment dw 0123h,0456h,0789h,abcdh,0defh,0fedh,0cbah,0987h // 共8个字节data endsstack segment dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // 共16个字节s..原创 2021-01-14 23:27:47 · 170 阅读 · 0 评论 -
汇编语言Loop指令
Loop 指令功能: 实现循环(计数型循环)格式: loop 标号操作:CX:CX - 1判断CX中的值:不为零则转至标号出执行程序,如若为零,则向下执行。要求:进入之前,一定要对CX赋值。例: 使用Loop指令计算2的12次方assume cs:code code segment mov ax,2 mov cx,11 // 在cx中存放循环次数 s:add ax,ax // 用标号指定循环开始的位置,同时在标号与loop指令中间,写上循环体(循环原创 2021-01-14 23:09:46 · 7262 阅读 · 3 评论 -
使用汇编语言编写第一个程序
编写逻辑使用工具: editPlus运行工具: 用Debug跟踪程序的执行。程序模板:assume cs:codesg // cs代表代码段codesg segment mov ax,0123H mov bx,0456H add ax,bx add ax,ax mov ax,4C00H // 程序执行结束处 int 21Hcodesg endsend ...原创 2021-01-14 22:54:18 · 290 阅读 · 0 评论 -
汇编语言中栈及栈操作的实现
栈:数据始终采用先进后出的特点。8086CPU提供入栈和出栈指令,基本操作:PUSH(入栈)和POP(出栈)操作。在8086CPU中,有两个寄存器,段寄存器SS和寄存器SP;SS: 存放栈顶的段地址。SP:存放栈顶的偏移地址。PUSH指令(入栈): SP = SP - 2 // SS此时指向新栈顶POP指令(出栈): SP = SP + 2例:mov ax,1000Hmov ss,axmov sp,0010H物理逻辑:根据SP的变化,决定..原创 2021-01-14 22:41:04 · 2889 阅读 · 0 评论 -
内存中字的存储
一个字可以存在一个16位寄存器中,可分为高8位寄存器和低8位寄存器。例: mov ax,4E20HAX = 4E20HAH = 4EHAL = 20H在起始位置为0的单元中,存放的是4E20H。在起始位置为2的单元中,存放的是0012H。...原创 2021-01-14 22:13:04 · 381 阅读 · 0 评论 -
8080CPU寄存器划分
8080CPU共有14个寄存器:通用寄存器: AX、BX、CX、DX变址寄存器: SI 、DI指针寄存器: SP、BP指令指针寄存器: IP段寄存器: CS、SS、DS、ES标志寄存器: PSW补充:BX通用寄存器,在计算存储器地址时,常作为基址寄存器用。SI(Source index ): 源变址寄存器DI (destination index) :目标变址寄存器BX与SI和DI的区别:SI和DI不能够分成两个8位寄存器来使用。...原创 2021-01-14 12:07:32 · 671 阅读 · 0 评论 -
Debug常用指令和DOSBox使用步骤
Debug是Dos系统中著名的调试程序,也可以运行在Windows系统实模下。优点: 使用Debug程序,可以查看CPU各种寄存器的内容,内存的情况,并且在机器指令级跟踪程序的运行。DosBox:用于在Dos窗口下编写汇编指令如何进入DosBox的Debug:mount c e:\masm // 根据自身的masm的安装路径,本人主机的masm文件在e盘;c:dirdebugDebug常用指令:用R命令查看、改变寄存器的内容。用D命令查看内存中的内容。用E命令改变内原创 2021-01-14 11:13:46 · 1822 阅读 · 0 评论 -
汇编语言基础知识点
汇编语言:是人和计算机沟通最直接的方式。学习汇编语言的目的:充分获得底层编程的体验。深刻理解机器运行程序的机理。优点:效率,底层。计算机主板的组成结构:原创 2021-01-14 10:02:10 · 499 阅读 · 0 评论 -
汇编语言关于8086CPU多种寻址方式总结
8086CPU对内存的寻址方式参考王爽老师的《汇编语言》第四版,P164原创 2021-01-13 23:29:18 · 216 阅读 · 0 评论 -
基址变址寻址来实现暂存数据功能
关于基址变址寻址技术,利用栈暂存数据*参考王爽老师的第四版,对P158的汇编代码,进行了个人理解标注。仅供参考,存在错误之处,请大家斧正。assume cs:codesg,ds:datasg,ss:stacksg // 代码段cs、数据段ds、栈段ssdatasg segment db 'ibm ' db 'dec ' db 'dos ' db 'var 'datasg endsstack segemnt dw 0,0,0,0,0,0,0,原创 2021-01-13 22:47:16 · 203 阅读 · 0 评论 -
汇编语言中将数据、代码、栈放入不同的段
数据、代码、栈放入不同的段在学习汇编语言,将数据、代码、栈放入不同的段。参考王爽老师的第四版,对P133的汇编代码,进行了个人理解标注。仅供参考,存在错误之处,请大家斧正。assume cs:b, ds:a, ss:c; // 代码段cs、数据段ds、栈段ssa segment dw 0123h,0456h,0789h,abcdh,0defh,0fedh,0cbah,0987h // 共8个字a endsc segment dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0原创 2021-01-13 21:53:22 · 478 阅读 · 0 评论